我在Div中有一个带有标签及其验证摘要的字段。它是模态JQuery对话框的一部分:
<table>
.
.
.
<div id="user-date-add">
<tr>
<td width="100">
<div class="editor-label">
@Html.LabelFor(model => model.User.Date)
</div>
</td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.User.Date)
@Html.ValidationMessageFor(model => model.User.Date)
</div>
</td>
</tr>
</div>
.
.
.
根据JavaScript函数内部的某个条件,我需要隐藏或显示此部分的日期字段和该Div内的相关数据
所以我试过了:
if(condition)
{
$("#user-date-add").hide();
}
else
{
$("#user-date-add").show();
}
我也试图利用:
$("#user-date-add").trigger();
它不起作用。表单上的字段甚至不闪烁。是因为div是在模态弹出窗口内渲染的吗?或者是因为里面有输入标签? 顺便说一句,编辑日期字段显示为DatePicker。
我该如何使这项工作? 提前谢谢。
答案 0 :(得分:1)
假设对话框的ID为dialog-box
,那么您可以尝试使用
$('#dialog-box #user-date-add').hide();
这可能是因为对话框实例化的方式,可能会将现有的div留在那里,这意味着你的jQuery选择器无法正常工作。
尝试在Firefox中使用Firebug或在Chrome中使用Web Inspector在控制台中尝试不同类型的内容,例如以下内容。
$('#user-date-add');
$('[id=user-date-add]');
$('[id=user-date-add');
$('.editor-label');
希望它有所帮助, 戴夫
答案 1 :(得分:0)
显然在表格单元格内部使用DIV标签无效。
我删除了div并将ID添加到我需要的实际行.Hide()/ .Show()。
<tr id="user-date-add">
<td width="100">
<div class="editor-label">
@Html.LabelFor(model => model.User.Date)
</div>
</td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.User.Date)
@Html.ValidationMessageFor(model => model.User.Date)
</div>
</td>
</tr>