我有一个这样的场景,我有动态生成的文本框。 我必须验证文本框最多15个字符并限制特殊字符。
下面是document.ready()中生成文本框和绑定的代码 将事件粘贴给他们。
$(document).ready(function(){
//Generate textboxes..i have some logic by which i am generating
//textboxes on the fly and giving textboxes a class flagText
GenerateFlagBoxes();
//i am binding the textboxes by class names
var $flagArea = $('.flagText');
$flagArea.bind('paste', function () {
var element = this;
setTimeout(function () {
alert($(element).val());
}, 100);
});
});
但这不起作用。我提供的警报不会到来。我认为控件是在准备好的事件中创建的。 一定要听事。我错了。我不知道为什么会这样。 我想要一些建议。
提前致谢。
这个小提琴正在工作。我正在检查,我可能错了一些地方。我会更新我的位置 我错了;
http://jsfiddle.net/mnsscorp/8QFGE/1/
是的,现在正在工作。在文档准备好了我能够绑定粘贴事件。我错了代码中的某些地方。 :) 谢谢你的建议。
答案 0 :(得分:8)
尝试动态生成元素的事件委派 -
$(document).on('paste','.flagText',function(){
var element = this;
setTimeout(function () {
alert($(element).val());
}, 100);
});
答案 1 :(得分:3)
对于动态元素,您需要一个事件委托,例如on
。
试试这个:
$("body").on('paste', '.flagText', function () {
setTimeout(function () {
alert($(this).val());
}, 100);
});
答案 2 :(得分:0)
使用目标
var $flagArea = $('.flagText');
$flagArea.bind('paste', function (e) {
setTimeout(function () {
alert(e.target.value);
}, 100);
});