【发布时间】:2018-12-05 11:00:01
【问题描述】:
我有一个视图模型,它有一个如下所示的数据网格
<table>
@foreach (var item in Model)
//for(int i=0;i<Model.Count();i++)
{
using (Html.BeginForm("Edit", "Views", FormMethod.Post))
{
<tr>
<td>
@Html.TextBoxFor(modelItem => item.Description, new { id = "description" })
</td>
<td>
@Html.DisplayFor(modelItem => item.DisplayAt, new { id = "displayat" })
</td>
<td>
@Html.DropDownListFor(m => item.selectedRegion, item.RegionsList, item.Region, new { id = "ddlregion" })
</td>
<td>
@Html.DropDownListFor(modelItem => item.Products, item.ProductsList, item.Products, new { id = "ddlproduct" })
</td>
<td>
@Html.DropDownListFor(modelItem => item.Companies, item.CompaniesList, item.Companies, new { id = "ddlcompany" })
</td>
<td>
@Html.DropDownListFor(modelItem => item.UserName, item.UserNamesList, item.UserName, new { id = "ddlusers" })
</td>
<td>
@Html.CheckBoxFor(modelItem => item.Visible, new { id = "chkVisible" })
</td>
<td>
<input type="submit" value="Edit" id="button" />
</td>
</tr>
}
}
</table>
我编写了一个 jquery 函数来处理带有 id=button 的按钮的点击
但是,它仅适用于第一行。 当我单击第二行中的按钮时,没有调用该函数。 如何编写一个在单击任何按钮时将调用的 jquery。
我的 jQuery 代码:
$('#button').click(function () {
var product = $("#ddlproduct").find("option:selected").text();
var user = $("#ddlusers").find("option:selected").text();
*does something*
});
仅在第一行调用。 我假设有一个类似 foreach 按钮的 id 被点击。
【问题讨论】:
-
按照网络标准,每个页面的 ID 应该是唯一的。改用一个类。
-
为什么不用
class而不是id? -
类将如何获取下拉列表的值?
-
类只是识别元素的另一种方式。元素可以有
id="something"和class="something",两者都可以用javascript 选择器查找。唯一的区别是 id 应该是唯一的,而类不是。
标签: javascript jquery for-loop foreach viewmodel