CLL*_*CLL 3 jquery canvas jquery-validate html5-canvas signaturepad
我正在使用jquery.validate.js来验证表单中的多个字段以及smizek 的 signature_pad。我想验证是否在 html 画布(签名板)上绘制了某些内容,同时验证了所有其他输入字段。
不幸的是,向 jquery 验证提交处理程序添加一个函数来检查画布是否具有签名是不够的,因为这仅在满足所有其他必需字段后才会触发。我可以向 jquery 验证器添加方法,但我很确定这些方法只能用于验证输入的内容,而不是画布。
我可以使用“signaturePad.isEmpty()”检查签名是否存在。理想情况下,有一种方法可以添加这样的函数,该函数与任何验证同时发生:
var errorExists = false;
if( signaturePad.isEmpty()){
if (errorExists == false){
$( "#signature-pad" ).append( "<div id="sig-error">A signature is required</div>" );
errorExists = true;
}
}else if( !signaturePad.isEmpty()) {
if (errorExists == true){
$('#sig-error').remove();
}
}
Run Code Online (Sandbox Code Playgroud)
...并且只有在满足 jquery 验证和签名的情况下才继续实际提交表单。
有没有办法在其他验证发生的同时触发一个函数——而不是在之后?除非满足我的两个条件 - 不仅仅是 jquery 验证,否则如何阻止表单提交?
在jquery验证submithandler中,return false如果没有填写签名:
if( signaturePad.isEmpty()){
console.log('it is empty');
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果没有签名,这可以防止表单被提交。
要像其他 jquery 验证错误消息一样显示缺少签名的错误消息,请将函数绑定到提交输入的单击:
$('#submit_form').click(function(){
if( signaturePad.isEmpty()){
if (errorExists === false){
$( "#signature-pad" ).append( "<div class='error' id='sig-error'>A signature is required</div>" );
errorExists = true;
}
}else if( !signaturePad.isEmpty()) {
if (errorExists === true){
$('#sig-error').remove();
errorExists = false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
在某处声明您的变量:
var errorExists = false;
| 归档时间: |
|
| 查看次数: |
9282 次 |
| 最近记录: |