我是javascript和jquery的新手,在编写脚本时偶然发现了一个问题。
我的脚本是由php代码生成的,它从文件中读取行,解析它并使用数组打印出来。然后,js验证表单输入,并向用户输出有用的消息。
我在$('#id').blur
上成功地在各种元素上使用了js和jquery。但是,当我尝试在索引元素上执行此操作时,我遇到了这个问题。
代码:
$('#NS_IN[0]').blur(function() {
alert("Called");
CopyNStoMain();
});
我注意到这个函数永远不会被执行。我试着在控制台中查看变量。
typeof($('#NS_IN[0]'))
是一个对象;但typeof($('#NS_IN[0]').val())
未定义。
在我的HTML代码中,我有:
<input type="text" id="NS_IN[0]" value="" name="NS[0]">
我做错了什么?如果定义了标识NS_IN[0]
并且$(NS_IN[0])
引用了一个对象,那么$(NS_IN[0]).val()
不存在并保留输入框的值吗?
答案 0 :(得分:3)
您需要转义jquery选择器字符。
$('#NS_IN\\[0\\]').blur(function() {
alert("Called");
CopyNStoMain();
});
答案 1 :(得分:0)
您已经得到了答案here ...我不知道如何将您的问题标记为副本。
//get
bla = $('#txt_name').val();
//set
$('#txt_name').val('bla');
答案 2 :(得分:0)
在jQuery中,[]
以不同的方式工作,例如:
div[id^="player_"]
因此,其中一个解决方案是选择ID以某些东西开头的项目:
$("input[id^=NS_IN]").val();
答案 3 :(得分:0)
当您使用其他选择器时,它会起作用,因为jquery使用[]
作为属性选择器本身。所以使用例如(见小提琴:http://jsfiddle.net/rePQm/1/):
$('input')。click(function(){alert(“clicked”+ this.id);});
一个元素选择器,它选择所有输入元素并将click处理程序添加到所有输入元素。有关更多可能的选择器,请参阅http://api.jquery.com/category/selectors/的jquery文档的selectors部分。