0

上記のオプション フィールドが以下の状態 DE jsfiddle コードの場合、運転免許証が正確に 6 つの数字であるかどうかを確認したい

http://jsfiddle.net/THKez/1/

<form name="clientdetails_form" id="clientdetails_form" method="POST" action="xxxx.php">  

<p>
<label for="state">State</label>
<select type="text" name="state" >
<option value="NY">NY</option>
<option value="DE">DE</option></select>
</p>

<p>
<label for="LicenseN"><em>*</em>License #</label>
<input id="ClientLicensenNum"  name="ClientLicensenNum" type="text" value="" >
</p>    

    <input type="submit" value="submit"  >    

</form>

ありがとう

4

2 に答える 2

0

6 文字の DE ライセンスを処理するカスタム メソッドを作成します。

jQuery.validator.addMethod("DELicense", function(value, element) {
    if (this.optional(element)) {
        return true;
    }

    if ($('select[name="state"] option:selected').val() == 'DE') {
        return $(element).val().match(/^\d{6}$/);
    } else {
        return true;
    }
}, "DE Licenses must be 6 numbers");

検証を呼び出すときは、select が DE に設定されている場合に、このカスタム タイプを使用する必要があることを指定します。

$("#clientdetails_form").validate({
    rules: {
        ClientLicensenNum: {
            DELicense: true,
            required: true
        }
    }
});​

ここで実際に見てください:http://jsfiddle.net/ryleyb/THKez/3/

もう少し複雑にするために編集しました-カスタムルールは必要なdependency-expressions方法で使用できないことがわかりました。

于 2012-11-30T18:33:56.330 に答える
0

ドロップダウンの変更時に、状態が DE で長さが 6 の場合、何かを行います。フィドル

$(document).ready(function() {
    $('select').change(function() {
        var state = $(this).val();
        var license = $('#ClientLicensenNum').val();
        if (state == "DE" && license.length == 6) {
            console.log('Do something');
        }
    });
});​
于 2012-11-30T16:48:24.280 に答える