Javascript 不是工作类。添加新输入后为数字。我该怎么办?
为什么添加新输入后,js代码中的类Javascript 不是工作类。添加新输入后为数字。我该怎么办?,javascript,jquery,Javascript,Jquery,为什么添加新输入后,js代码中的类.numeric(正常数字格式)不起作用 普通数字格式的这种方式是正确的吗? 你有什么建议? 我不想使用插件。 $("input:text.numeric").keyup(function () { $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join(""); $(thi
.numeric
(正常数字格式)不起作用
普通数字格式的这种方式是正确的吗?
你有什么建议?
我不想使用插件。
$("input:text.numeric").keyup(function () {
$val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
$(this).val($val)
})
关于如果在加载完成后向页面添加了内容,则需要在脚本上使用live()函数,使它们能够处理新数据
如果您执行以下操作:
$('#container').append('<div class="clickme">The text goes here</div>');
…它们都被视为添加到页面中
使用live(),您的代码将变成:
$("input:text.numeric").live('keyup', function () {
$val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
$(this).val($val)
});
请在此处阅读更多信息:您需要一个经得起未来考验的事件观察者。由于keyup
绑定已分配给现有节点,因此以后创建的任何节点都不会绑定到该事件。您需要使用live
或delegate
改变
$("input:text.numeric").keyup(function () {
到
或
delegate()
比live()
对资源更友好,但您需要提前了解家长。在你的例子中,我推荐它
工作演示:使用该方法将处理程序绑定到.column
容器
示例:
这样,无论何时将.column
中的任何“input.numeric:text”
元素添加到DOM中,都将调用处理程序
我还稍微改变了一下选择器。对我来说似乎更容易理解
$("input:text.numeric").keyup(function () {
$("input:text.numeric").live('keyup',function () {
$('.find_input').delegate('input:text.numeric','keyup',function () {
$('.column').delegate("input.numeric:text",'keyup',function () {
$val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
$(this).val($val)
});