1

簡単な jQuery 検証の例を機能させるのに問題があります。フィールドがフォーカスを失ったときにフィールドが検証されるようにするには、このフィドルをどのように変更しますか?

http://jsfiddle.net/jeljeljel/wyB3w/2/

HTML

<div id="pseudoForm">
    <input type="text" name="first_name" />
    <input type="text" name="last_name" />
</div>

JS

$("#pseudoForm").validate({
    onfocusout: true,
    rules: {
        first_name: "required",
        last_name: "required"
    }
});
4

3 に答える 3

3

あなたのスクリプト+マークアップには多くの問題があるようです.

  1. 入力要素はフォーム内にある必要があります。
  2. 入力要素はid、コードで動作する必要があります (尊敬されている仲間である Sparky によって、これは要件ではないことに注意を促されました) 。
  3. すでに述べたように、あなたは}
  4. jQuery Validate はフォーム上で動作します
  5. onfocusoutまたは_ _falsefunction(){}

このjsfiddleを確認してください。修正されたコードが含まれています

HTML IMO の修正

<form id="pseudoForm" >
    <input type="text" name="first_name" id="first_name" />
    <input type="text" name="last_name" id="last_name" />
</form>

正しい Javascript

$("#pseudoForm").validate({
    onfocusout: function(fld){$(fld).valid()},
    rules: {
        first_name: 'required',
        last_name: 'required'
    }
});

次に、マウスを使用してフォームを投稿する方法を見つける必要があります:Dが、検証が機能するためには必要ありません

于 2013-04-29T20:56:17.227 に答える
1

オブジェクトのクロージング}がありません。rules

于 2013-04-29T20:35:50.353 に答える
1

あなたの最新の編集以来、私は3つの問題しか見ません:

1 ) はまたは 関数onfocusoutのみです。falsetrue に設定すると、プラグインが壊れます。デフォルトでは、プラグインのonfocusout検証は最初の送信後にのみ有効になります。そのため、デフォルトのコールバック関数を変更して、すぐに検証されるようにしました。

2 ) このプラグインはform要素でのみ使用できます。

3.validate() ) DOM Ready ハンドラ内に囲みます。

動作デモ: http://jsfiddle.net/cKeeN/

jQuery :

$(document).ready(function () {

    $("#pseudoForm").validate({
        onfocusout: function (element, event) {
            this.element(element);
        },
        rules: {
            first_name: "required",
            last_name: "required"
        }
    });

});

HTML :

<form id="pseudoForm">
    <input type="text" name="first_name" />
    <input type="text" name="last_name" />
</form>
于 2013-04-30T15:09:59.767 に答える