Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery signfield在iPad上只允许一行_Javascript_Jquery_Ipad_Canvas_Safari - Fatal编程技术网

Javascript jquery signfield在iPad上只允许一行

Javascript jquery signfield在iPad上只允许一行,javascript,jquery,ipad,canvas,safari,Javascript,Jquery,Ipad,Canvas,Safari,我需要在表单上添加一个签名字段,用于在iPad上签署文档 我需要一个插件,将允许在同一表单上输入多个签名 我发现这个jQuery插件“signfield”非常好用 但它有一个巨大的问题 在桌面firefox、safari等平台上,它工作得很好 在iPad上,它一次只允许你画一条线——如果你抬起手指,然后尝试画另一条线,画布就会清晰 如果你的签名可以画成一条连续的线,那就好了,但那是不太可能的 在桌面safari上,它可以正常工作——你可以画很多线。但在移动safari上,它有这个问题 这个问题

我需要在表单上添加一个签名字段,用于在iPad上签署文档

我需要一个插件,将允许在同一表单上输入多个签名

我发现这个jQuery插件“signfield”非常好用

但它有一个巨大的问题

在桌面firefox、safari等平台上,它工作得很好

在iPad上,它一次只允许你画一条线——如果你抬起手指,然后尝试画另一条线,画布就会清晰

如果你的签名可以画成一条连续的线,那就好了,但那是不太可能的

在桌面safari上,它可以正常工作——你可以画很多线。但在移动safari上,它有这个问题

这个问题发生在演示中,所以这是插件的问题,而不是我的实现

救命

对于jSignature:

请记住,我已经对库进行了一些修改,这样我就可以在画布上打印文本,这样就可以表明他们同意的内容(我已经从下面的代码中删除了我的custome代码,以显示基本库的更多原始示例)

HTML:

检查是否至少执行了一次冲程

if ($("#signature").jSignature('getData', 'native', '', '').length === 0) {
    // user has not signed
} else {
    // user has signed
}
获取签名图像base64字符串:

model.getSignatureData = function () {
    return $("#signature").jSignature("getData", "image");
}
为签名base64值设置可观察值:

model.SignatureValue(model.getSignatureData()[1]);

然后,我只需将发布到API的JSON中的signature value属性传递给API

我使用jSignature库处理这样的项。过来看。这个插件看起来不错,但是你怎么能把它添加到一个表单中,这样它就可以和表单一起提交数据呢?我有很多表单的提交功能,它可以在任何设备和浏览器上工作。这取决于您的需要以及如何存储签名等。我实际上将签名转换为base64字符串并将其存储在数据库中。然后在需要时将其转换回显示。我需要加密存储,而该任务不允许存储在文件系统中。提交后,您希望如何处理该图像。我编写了几个函数与基本库一起使用,以获得我想要的一切,并覆盖它的一些默认行为以满足我的确切需要。只需将base64字符串作为表单字段提交,以及表单的其余部分。该库有一个内置函数“getData”,它将为您保存base64字符串。例如:return$(“#signature”).jSignature(“getData”,“image”);
model.getSignatureData = function () {
    return $("#signature").jSignature("getData", "image");
}
model.SignatureValue(model.getSignatureData()[1]);