如何在for循环中使用jQuery获取@Html.EditorFor控件的值
解决jQuery获取@Html.EditorFor控件值的问题
方法1:通过指定的class选择器获取
你已经给@Html.EditorFor添加了eventdate类,直接用类选择器就能定位元素,示例代码:
// 获取所有日期控件的值,返回数组 var allEventDates = $('.eventdate').map(function() { return $(this).val(); }).get(); // 获取表格第一行的日期值 var firstRowDate = $('#tblEvents tbody tr:first .eventdate').val();
方法2:通过Razor生成的name属性定位
@Html.EditorFor会自动生成格式为ModelEvents[i].EVENTDATE的name属性,利用属性选择器可以精准定位:
// 获取索引为0的日期控件值 var targetDate = $('input[name="ModelEvents[0].EVENTDATE"]').val(); // 遍历所有日期控件并输出值 $('input[name^="ModelEvents["][name$="].EVENTDATE"]').each(function() { console.log("日期值:" + $(this).val()); });
方法3:结合表格行上下文获取(如点击行时)
如果需要在用户操作(比如点击表格行)时获取对应行的日期,可通过行的上下文查找:
// 给表格行绑定点击事件 $('#tblEvents tbody tr').on('click', function() { var currentRowDate = $(this).find('.eventdate').val(); alert("当前行日期:" + currentRowDate); });
注意事项
- 确保页面已正确引入jQuery库,且代码放在
$(document).ready()中执行,避免DOM未加载完成导致无法找到元素:$(document).ready(function() { // 这里写你的jQuery代码 }); - 若
EditorFor生成的是HTML5日期输入框,val()方法返回的是标准ISO格式字符串(例如2024-05-20),可直接使用或转换格式。
内容的提问来源于stack exchange,提问作者Karthikeyan Manickam
相关产品推荐
相关产品推荐

