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

在下拉更改时,如果状态为 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 回答
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");

当您调用 validate 时,指定当您的选择设置为 DE 时必须使用此自定义类型:

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

在此处查看实际操作:http: //jsfiddle.net/ryleyb/THKez/3/

编辑使它更复杂一点 - 结果自定义规则不能使用所需dependency-expressions的方式。

于 2012-11-30T18:33:56.330 回答