jSignature有画布,它有一个类.如何验证jSignature我是否画了一些东西?
我为click事件添加了一个绑定.
$sigdiv.bind('click', function(e) {
$("#num_strok").val(parseInt($("#num_strok").val()) + 1);
});
Run Code Online (Sandbox Code Playgroud)
问题是我点击某个角落也会num_strock增加.对于一些拖累它不会增加.
我曾在谷歌尝试过是否有内置isEmpty功能.但我还没有找到任何东西.
Nar*_*lia 15
if( $sigdiv.jSignature('getData', 'native').length == 0) {
alert('Please Enter Signature..');
}
Run Code Online (Sandbox Code Playgroud)
聚会很晚了……所以我想就我的发现提供一些意见,每个意见都与使用$("#sigDiv").jSignature('getData', 'putSomethignInHere')函数来验证签名是否存在有关。
以下是我为传递给 jSignature 函数的第二个属性检查的选项:
native.length == 0当 sig 框为空时返回一个对象对象,但当 sig 框中.length > 0有东西时。如果您想知道有多少笔画,只需使用此对象的长度即可。注意:根据 jSignature 文档:
“Stroke = mousedown + mousemoved * n(+ mouseup 但我们没有记录,因为那是“结束/缺乏运动”指示器)”
base30也返回一个对象。这里我查看了这个对象的第二个索引位置的信息。
x = $("#sigDiv").jSignature('getData', 'base30')[1].length > 0 ? TRUE : FALSE在这里x,如果箱子已经签署,FALSE时留下的JSIG箱原封不动将一代产量TRUE。
就我而言,我使用该base30属性来验证签名复杂性,而不仅仅是“最终用户是否绘制了一些东西?”。
x = $("#sigDiv").jSignature('getData', 'base30')[1].length > {insertValueHere} ? TRUE : FALSE. 为了验证最终用户实际在框中签名并给出了不仅仅是一个简单的“。” 小'x'。产生的第二个索引的返回值base30随着复杂度变大。因此,如果用户只输入一个点,
x = $("#sigDiv").jSignature('getData', 'base30')[1].length则大约为 5。最终用户在框中绘制的越多,产生的值就会变得越来越大。我在测试期间记录的最高长度是 2272。我在盒子里乱涂乱画,总共 15 秒。
根据 jSig 文档:
base30 (alias image/jSignature;base30) (EXPORT AND IMPORT) (VECTOR) 数据格式是一种 Base64-spirited 压缩格式,针对荒谬的紧凑性和原生 url 兼容性进行了调整。它是压缩成所有向量的紧凑字符串表示的“原生”数据结构。
image- 这是我在验证时会避免的选择。它在第二个索引位置生成一个带有长字符串的对象。我测量的最后一个是 672 个字符长。image无论信号框是空白还是使用,Using 都会产生一个字符串。为了让事情变得更无用,Chrome 中的空白签名框与 FF Developer 中的空白签名框生成的字符串不同。我确定该image值有用途,但不是验证。
svgbase64- 这image与例外情况类似。与 不同image, usingsvgbase64在第二个位置产生一个长而短的字符串。此外,当我执行 Chrome verse FF Developer 检查时,此字符串是相同的。这是我停止测试的地方。所以我假设您可以svgbase64用于验证。
这些是我的结论,你的可能会有所不同。请不要拿我的低名誉来对付我。
根据jSignature 网站,getData API 中有一个函数。如果您getData在空签名区域上使用该函数作为参考,则可以随时使用getData并将其与空参考进行比较。然后您就可以判断签名区域是否写有内容。
这只是我的猜测,因为我没有使用过这个脚本,但我认为这样的东西是可以工作的。
我也在网站上找到了这个
在将笔划添加到存储后,初始化 jSignature 的 dom 元素立即发出“更改”事件。(换句话说,当用户完成每个笔画的绘制时。如果用户绘制了 3 个笔画,则在每个笔画完成后,该事件将发出 3 次。)
以下是绑定到该事件的方式:
$("#signature").bind('change', function(e){ /* 'e.target' will refer
to div with "#signature" */ })
Run Code Online (Sandbox Code Playgroud)
事件是通过“线程”( setTimeout(..., 3) )异步发出的,因此您不需要将事件处理程序包装到任何类型的“线程”中,因为 jSignature 小部件将继续运行并且不会等待您将完成自定义事件处理程序逻辑。
难道您不能只设置一个在第一个事件上设置为 true 的标志变量吗change?这表明该区域已写入某些内容
| 归档时间: |
|
| 查看次数: |
8342 次 |
| 最近记录: |