Для части «должен начинаться с цифры», я думаю, вам понадобится пользовательское правило.
Для части «требуется, если другое поле не пустое», вы можете использовать Выражение зависимости , чтобы решить, требуется ли оно при запуске валидатора:
Сложите их вместе, и вы получите что-то вроде этого:
<form>
<input name="first">
<input name="second">
</form>
$.validator.addMethod("startsWithNum", function(input, element) {
// First char must be digit if not empty
return ! input || input.match(/^[0-9]/);
}, "This field must start with a number");
$('form').validate({
rules: {
first: {required : true},
second: {
"startsWithNum" : true,
required: function() {
// required if <input name="first"> is not empty
return $('[name="first"]').val() !== '';
}
}
}
});
Демонстрация: http://jsfiddle.net/qCELA/2/
В форме есть только один ввод, который мне нужно сделать.Если пользователь оставил это поле пустым, правила не применяются.В противном случае это единственное поле ввода должно начинаться с цифры.
Если у вас есть только одно поле ввода, все, что вам нужно, это пользовательское правило:
$('form').validate({
rules: {
second: {"startsWithNum" : true}
}
});
Демо: http://jsfiddle.net/qCELA/3/