我的代码有一个奇怪的问题;
$('input[name=attachment\\[\\]').change(function(e) {
alert("test");
});
工作正常,它会警告“测试”,但这仅适用于我的第一个输入字段,我有一个[添加更多附件]按钮,在页面加载后添加额外的输入字段,所以我不能使用.change(),我需要使用.live('change',func ....而不是。
当我使用此代码时;
$('input[name=attachment\\[\\]').live('change', function(e) {
alert("test");
});
它不再有效,我得到这个语法错误;
Uncaught Error: Syntax error, unrecognized expression: input[name=attachment\[\]
感谢您的帮助。 :)
答案 0 :(得分:3)
表达错误。您缺少属性选择器的右括号。
$('input[name=attachment\\[\\]]')
您也可以使用
$('input[name="attachment[]"]')
//or
$('input[name^=attachment]')
您应该使用.live
代替.on
,而不是:{/ p>
$(document).on("change", "input[name^=attachment]", function () {
答案 1 :(得分:1)
如果您想要将处理程序附加到动态元素,则需要在父元素上使用on()
委托:
$(document).on('change','input[name=attachment\\[\\]',function(e) {
alert("test");
});
PS:我仍然对\\
感到困惑,但至少应该让你朝着正确的方向前进。