如何解决遍历页面上的控件-Javascript
我正在与Javascript一起在Asp.net MVC中创建一个页面。
我的视图页面及其控件是动态生成的,效果很好。
我唯一的问题是我需要能够自动检查每个控件的值并将其与数据库中的当前值进行比较,而且由于我的控件是动态生成的,因此我不确定如何执行此操作。
是否可以通过javascript循环浏览页面上的所有控件?我将需要遍历每个控件,并检查值,并在需要时更新数据库。
这是我的代码部分,我在其中动态生成每个控件:(从viewmodel中的对象生成)
foreach (var row in Model.controls)
{
<li>
<label>@row.Name</label>
@if (row.ControlType == "STRING" || row.ControlType == "COMMENT")
{
<input type="text" name="@row.Name" id="@row.NameID" value="@row.Value" class="form-control" style="width: 300px"/>
}
else if (row.ControlType == "DDL")
{
<select name="@row.Name" id="@row.NameID" class="form-control" style="width: 300px">
@foreach (var o in row.Options)
{
<option value="@o.Value">@o.Text</option>
}
</select>
}
</li>
}
每个控件的ID来自数据库,所以我可以访问它。
我只需要一种遍历每个输入/下拉菜单并检查其值的方法。
非常感谢!
解决方法
在这种情况下,我想用类似的类标记要检查的字段:
<input type="text" .. class="form-control data-field" />
此外,您可能希望将原始值添加为数据属性,例如:
<input .. data-original-value="@row.Value" />
这是在渲染时指定的值。您可以使用下面的示例(我只写了定位输入,并且需要扩展以处理选择)来遍历所有对象。
$(".data-field").each(function() {
var val = $(this).val();
var origVal = $(this).data("original-value");
if (val != origVal) {
//value changed
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。