-4

HTML フォームで jquery 関数を呼び出そうとしています。「キー」フィールドの長さが 10 未満であってはならないことを確認したいのですが、関数 checkError がまったく呼び出されていないようです。

<form action="/search" method="get" onsubmit="if (document.getElementById('key').value.length < 10) checkError();"> 

完全なコードはこちら: http://jsfiddle.net/7UwsN/

4

2 に答える 2

2

問題は、 return false が呼び出される前にフォームが送信されていることです。onsubmit インラインを使用する場合は、false にする必要があります。フォームを送信しないように

于 2013-03-16T05:14:08.230 に答える
2

あなたはこれについて本当に正しく行っていません。あなたは HTML コードで jquery 関数を呼び出そうとしていると言っていますが、実際には if 条件を実行していて、おそらく関数を呼び出しています。

すべての処理を JavaScript 関数に移動すると、はるかに良くなり、邪魔になりません。jQuery を使用している場合は、イベント関数の設定を確認してから、submit()そこで処理を行ってください。この関数で戻るtrueとフォームが送信され、戻るfalseとフォームの処理が停止します。

これはおそらく、あらゆる種類のバグのデバッグもはるかに簡単にするような方法で物事をフォーマットします...

例えば:

jQuery:

$(document).ready(function() {
    $("#formID").submit(function() {
        //do some processing, call other functions, whatever
        if(error)
            return false;
        else
            return true;
    });
});

HTML:

<form action="/search" method="get" id="formID">
于 2013-03-16T05:15:13.970 に答える