我有一张表格:
<form id="userForm" action="xpto">
<input type="text" name="form[data_nascimento_beneficiario_1]" value />
<input type="submit" value="Continuar" />
</form>
现在在脚本文件中,我尝试获取字段的长度以进行验证:
$("#userForm").submit(function (e) {
alert($("input[name="form[data_nascimento_beneficiario_1]"]).length());
});
但我总是得到“TypeError:无法调用null的方法'长度”,
我想问题就是名称上有“form []”,但这是我无法改变的:(
有人可以帮我吗?
关心所有人。
答案 0 :(得分:3)
那里有几个问题:
您引用的代码实际上有语法错误,所以不会给您说错误,您已经在单词name
之后结束了JavaScript字符串。
当您测试的属性值包含除字母A-Z之外的任何内容时,最好将其放在引号中。
length
最后是“th”,而不是“ht”
...在jQuery it's a property中,不是方法,因此您不希望()
之后
您在选择器中使用的名称(data_nascimento_baneficiario_1
)与表单中的名称(data_nascimento_beneficiario_1
)不匹配,请注意“baneficiario”开头的“a” “在选择器中。
所有在一起:Live Example | Source
alert($('input[name="form[data_nascimento_beneficiario_1]"]').length);
(在那里,我使用'
在选择器字符串周围添加引号,"
在属性值周围加上引号。反过来也有效。)
答案 1 :(得分:0)
你有一个拼写错误:.lenght()
- 它应该是length
。另外,请注意你的报价包装。
将您的行更改为:
alert($("input[name='form[data_nascimento_baneficiario_1]']).length);
答案 2 :(得分:0)
答案 3 :(得分:0)
请注意确定为什么不起作用,但解决方法是
$("input").filter(function(){
return this.name = 'form[data_nascimento_beneficiario_1]'}
).val().length