jquery.validate.jsを使用して、フォーム内の複数のフィールドをsmizek の signature_padとともに検証しています。他のすべての入力フィールドが検証されると同時に、html キャンバス (署名パッド) に何かが描画されているかどうかを検証したいと考えています。
残念ながら、jquery 検証 submithandler に関数を追加して、キャンバスに署名があるかどうかを確認するだけでは十分ではありません。これは、他のすべての必須フィールドが満たされた場合にのみトリガーされるためです。メソッドを 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();
}
}
...そして、jquery 検証と署名の両方が満たされている場合にのみ、実際にフォームを送信します。
後でではなく、他の検証が行われると同時に関数をトリガーする方法はありますか? jquery 検証だけでなく、両方の条件が満たされない限り、フォームの送信を停止するにはどうすればよいですか?