我有一个表单可以选择输入维度:
根据选择的三个选项中的哪一个,我隐藏/显示了两个容器div:
<div class="editor-field" id="width-container">
@Html.EditorFor(model => model.Width)
@Html.ValidationMessageFor(model => model.Width)
</div>
<div class="editor-field" id="height-container">
@Html.EditorFor(model => model.Height)
@Html.ValidationMessageFor(model => model.Height)
</div>
如果选择了height,那么宽度不会显示在窗体上,如何在Width输入字段中禁用不显眼的验证,这样可以让我在用户改变主意时轻松地重新设置它,即删除data- *属性不是一个选项。我很高兴创建一个CustomAttribute类来处理这个但我不想破解标准的jquery文件来使这个工作,因为它使新版本的更新令人头疼。如果所有其他方法都失败了,我将使用我常用的技巧,在字段不可见时将值0添加到字段中,然后在显示时将其删除。
编辑:
请注意,当Width不可见时,它本身不是“隐藏”字段,它只是一个用户看不到的输入标记,因为父div具有显示样式:none
答案 0 :(得分:13)
您可以设置处理不显眼验证的jQuery验证器,以忽略隐藏元素:
jQuery.validator.defaults.ignore = ":hidden";
// the line above is outside any $(document).ready(...) or similar
$(document).ready(function(){
...
});
...
答案 1 :(得分:1)
所以这似乎是我的问题的答案(我再次在Google上搜索难以搜索与“隐藏”字段无关的内容):
https://stackoverflow.com/a/7673985/491950
e.g。
$("#height-container input[type='text']").attr("disabled", "disabled");
感谢您的回答。