我有一个如下所示的动态表,我需要验证每个文本框。我只能做第一个文本框。我做不到。
我的代码:
foreach{ // for reference
<%: Html.TextBox("Qty", "", new { Id = "Qty_Id"})%>
}
$(function () {
debugger;
$('#Qty_Id').blur(function () {
var QtyVal = $('#Qty_Id').val();
var $regexmatch = /^[0-9]*$/;
if (!$.isNumeric(QtyVal) || !QtyVal.match($regexmatch)) {
IsValid = false;
alert("Quantity must be number..!");
$('#Qty_Id').val('');
}
});
});
答案 0 :(得分:1)
每页最多只能有一个元素具有任何给定的id
值。
到目前为止,您正在使用相同的id
创建多个元素。这使您的HTML无效。如果页面中有重复的id
值,则Javascript(以及jQuery)将始终仅返回具有给定id的第一个元素。因此,它仅适用于代码中的第一个下拉列表。
使用id
代替class
:
foreach{ // for reference
<%: Html.TextBox("Qty", "", new { Class = "Qty_Class"})%>
}
$(function () {
debugger;
$('.Qty_Id').blur(function () {
var QtyVal = $(this).val();
var $regexmatch = /^[0-9]*$/;
if (!$.isNumeric(QtyVal) || !QtyVal.match($regexmatch)) {
IsValid = false;
alert("Quantity must be number..!");
$(this).val('');
}
});
});
此外,在事件处理程序中,您可以使用this
访问导致事件的元素。