我需要检测文本框中的值是否已更改。如果文本框内容被更改/修改,我需要显示一个文本框并强制用户输入一些关于更改的评论。
这是我的 EditorTemplate 页面,位于 Shared/EditorTemplates/Addresses.cshtml
@Html.EditorFor(model => model.Address)
@Html.ValidationMessageFor(model => model.model.Address))
@Html.EditorFor(model => model.Comments,new{style="Visible:false" })
@Html.ValidationMessageFor(model => model.Comments ,new{style="Visible:false" })
这是 MyPage.cshtml,我将上面的 EditorTemplate 称为
@if (!UtilityHelper.IsNullOrEmpty(Model.AddressesRecords))
{
@Html.EditorFor(model => model.AddressesRecords)
}
<input type="submit" name="ButtonCommand" value="Save" />
当页面被加载时,会有多个地址文本框。如果用户对任何地址 TextBox 进行任何修改,CommentsTextBox 将立即在该特定地址 TextBox 上可见,并启用验证。
所以当我点击保存按钮时,我需要确保用户在 CommentsTextBox 中输入了一些评论。如果用户在没有更改地址文本框的情况下单击保存按钮,则记录将被保存。
在运行时,我可以看到编辑器 id 是动态生成的,例如 AddressesRecords_0_Address 、AddressesRecords_1_Address ......
我尝试了一些 Jquery,但这似乎永远不会起作用,因为实际的 AddressTextBox id 是动态生成的。
<script type="text/javascript">
$(document).ready(function(){
var $el = $('#AddressesRecords_0_Address');
$el.data('oldVal', $el.val() );
$el.change(function(){
$("#AddressesRecords_0_Comments").show();
})
});
</script>
在这里,如何将我的 Jquery 更改函数附加到我的每个 addressTextBox ?