我有一个有两个部分的表格。每个部分都通过自己的单选按钮进行扩展,因此一次只能有一个可见部分。我使用ASP.NET MVC HtmlHelper生成如下字段:
<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(默认为int)。现在,如果用户填写某些字段并尝试提交表单,则存在验证错误,因为即使其他部分中的字段不是必需的,但它的值为-0,这是不正确的,因为它必须大于1 。除了在表单提交之前清除隐藏部分中的字段外,我该如何克服这个问题?
更新即可。我想我需要某种条件验证方法。
答案 0 :(得分:1)
如果您可以构建它,则所需的方法需要回调,因此您可以通过以下方式将零空值检查构建到所需的验证器中:http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-callback
HTH。