У меня есть форма с двумя разделами. Каждый раздел расширяется с помощью своего переключателя, так что есть только один видимый раздел за раз. И я использую ASP.NET MVC HtmlHelper для генерации поля следующим образом:jQuery проверить необходимый метод и текстовые поля с 0
<label for="type-permanent" class="radio active">
<input type="radio" name="Type" value="Type1" id="type1" /> Label1
</label>
<%= Html.TextBox("Field1", Model.IntProperty1) %>
<label for="type-permanent" class="radio active">
<input type="radio" name="Type" value="Type2" id="type2" /> Label2
</label>
<%= Html.TextBox("Field2", Model.IntProperty2) %>
У меня есть две функции, чтобы я мог определить, какой раздел активен:
function isType1() { return $("#type1").attr("checked"); }
function isType2() { return $("#type2").attr("checked"); }
Наконец, я получил в followind методы проверки настройки:
Field1: {
required: isType1,
min: 1
},
Field2: {
required: isType2,
min: 1
}
Теперь дело в том, что если я прохожу пустую модель с точки зрения, оба поля установлены в 0 (по умолчанию для междунар). Теперь, если пользователь заполняет некоторые поля и пытается отправить форму, есть ошибка проверки, потому что даже если поле в другом разделе не требуется, но оно имеет значение - 0, это неверно, так как оно должно быть больше 1 Как я могу преодолеть это, кроме полей очистки в скрытых разделах перед подачей формы?
ОБНОВЛЕНИЕ. Наверное, мне нужен какой-то условный метод проверки.
Поскольку вы уже используете функцию, а не твердое значение, чтобы определить каждое значение 'required', почему бы не сделать то же самое с' min'? То есть, используйте 'min' of 1, только если это обязательное поле. –
Хм, документация не говорит, что min поддерживает такой синтаксис – HiveHicks