以下代码创建了一个表格& jQuery中的文本框。
var table = $("#dynamic-table").children();
var row = $('<tr class="data"></tr>');
row.append($('<td ><input type="text" value=' + item.Marks1 + '
size="10px" class="marks" id="txtmarks1" ></td>'));
我尝试使用以下不起作用的代码验证文本框。
$(".data").delegate(".marks","keyup",function () {
if ($('#txtmarks1').val().length > 2) {
if ($('#txtmarks1').val() > 100) {
alert("does not exceed 100");
}
}
});
如果这不是正确的验证方式,请提出解决方案。
答案 0 :(得分:1)
在页面加载后添加了事件目标部分$(".data")
和目标选择器".marks"
因此delegate()
方法无法定位目标栏.data
选择器类
您应该使用在页面加载时加载的父选择器或document
用于委托选择器部分
$(document).delegate(".marks","keyup",function () {
if ($('#txtmarks1').val().length > 2) {
if ($('#txtmarks1').val() > 100) {
alert("does not exceed 100");
}
}
})
答案 1 :(得分:0)
$(".marks").keyup(function () {
if ($(this).val().length > 2) {
if ($(this).val() > 100) {
alert("does not exceed 100");
}
}
});
<强> Demo 强>
答案 2 :(得分:0)
试试这个:
$("body").delegate(".data .marks","keyup",function () {
if ($('#txtmarks1').val().length > 2) {
if ($('#txtmarks1').val() > 100) {
alert("does not exceed 100");
}
}
})
答案 3 :(得分:0)
只需使用:
$(".data").change(".marks","keyup",function () {
if ($('#txtmarks1').val().length > 2) {
if ($('#txtmarks1').val() > 100) {
alert("does not exceed 100");
}
}
})
答案 4 :(得分:0)
试试 jsFiddle
$(document).on('keyup', ".marks", function () {
if ($(this).val().length > 2) {
if ($(this).val() > 100) {
alert("does not exceed 100");
}
}
});
答案 5 :(得分:0)
试试这个:
$('#dynamic-table').off('keyup').on("keyup",".marks",function () {
if ($('#txtmarks1').val().length > 2) {
if ($('#txtmarks1').val() > 100) {
alert("does not exceed 100");
}
}
}) ;