6

jSignatureキャンバスがあり、クラスがあります。何かを描いたかどうかにかかわらず、jSignature を検証するにはどうすればよいですか?

クリック イベントのバインドを 1 つ追加しました。

$sigdiv.bind('click', function(e) {
    $("#num_strok").val(parseInt($("#num_strok").val()) + 1);
});

問題は、いくつかのコーナーをクリックしてもnum_strock増加することです。そして、ドラッグによっては増加しません。

isEmpty組み込みの機能があるかどうかを Google で試しました。しかし、私は何も見つけていません。

4

9 に答える 9

20
 if( $sigdiv.jSignature('getData', 'native').length == 0) {
    alert('Please Enter Signature..');
 }
于 2014-09-12T09:51:11.337 に答える
4

jSignature Web サイトによるとgetData、API に機能があります。getData空の署名領域で関数を参照として使用すると、いつでも使用して空の参照と比較できますgetData。署名領域に何かが書かれているかどうかがわかります。

私はこのスクリプトを使用していないので、これは私の推測にすぎませんが、このようなものが機能すると思います。

編集

これもサイトで見つけました

jSignature が初期化された dom 要素は、ストロークがストレージに追加された直後に「change」イベントを発行します。(つまり、ユーザーが各ストロークの描画を終了したとき。ユーザーが 3 つのストロークを描画した場合、このイベントは各ストロークが終了した後に 3 回発生します。)

そのイベントにバインドする方法は次のとおりです。

$("#signature").bind('change', function(e){ /* 'e.target' will refer
to div with "#signature" */ })

イベントは「スレッド」( setTimeout(..., 3) ) を介して非同期的に発行されるため、jSignature ウィジェットは継続して待機しないため、イベント ハンドラーを任意の種類の「スレッド」にラップする必要はありません。カスタム イベント ハンドラー ロジックはこれで完了です。

change最初のイベントで true に設定されるフラグ変数を設定できませんでしたか? これは、その領域に何かが書き込まれていることを示しています。

于 2012-12-17T12:46:37.343 に答える
2

ポイントがある場合は、base30 ベクトルを確認できます。

var isSignatureProvided=$sigdiv.jSignature('getData','base30')[1].length>1?true:false;
于 2012-12-21T06:42:03.087 に答える
1

残念ながら、既存の回答はどれもうまくいきませんでした。私のサイトでは、署名を入力する 2 つの方法があります: manual と jSignature('importData', imgBase64) jSignature('getData', 'native') のテストは、手動描画でのみ機能しました。そして、イメージの方法では何も機能しませんでした。解決策は単純に見えました。canvas 要素をテストするだけです。おそらくIE9では機能しませんが、誰が気にしますか. TypeScript では次のようになります。

isSignatureBlank() {       
    var canvas = <any>$('#signatureElem').find("canvas")[0];
    if (!canvas) return true;
    this.emptyCanvas = this.emptyCanvas || document.createElement('canvas');
    this.emptyCanvas.width = canvas.width;
    this.emptyCanvas.height = canvas.height;

    return canvas.toDataURL() == this.emptyCanvas.toDataURL();
}

ここから採用:キャンバスが空白かどうかを確認する方法は?

于 2018-12-14T11:31:58.027 に答える
0

javascriptファイルのコードを検索します。彼らが「UndoStroke」ブロックを隠していることを確認してください

t.dataEngine.data.length

これは、署名パネルに対して行われたストローク数を見つけるのに役立ちます。

于 2012-12-18T10:57:13.400 に答える