想检查驾驶执照是否正好是6个数字 下面的jsfiddle代码
<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>
感谢
答案 0 :(得分:0)
在更改下拉列表时,如果状态为DE且长度为6,则执行某些操作。 Fiddle
$(document).ready(function() {
$('select').change(function() {
var state = $(this).val();
var license = $('#ClientLicensenNum').val();
if (state == "DE" && license.length == 6) {
console.log('Do something');
}
});
});
答案 1 :(得分: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时,请指定当您的select设置为DE时必须使用此自定义类型:
$("#clientdetails_form").validate({
rules: {
ClientLicensenNum: {
DELicense: true,
required: true
}
}
});
在此处查看此行动:http://jsfiddle.net/ryleyb/THKez/3/
EDITTED 让它变得更复杂 - 结果是自定义规则无法像required那样使用dependency-expressions
。