jQuery:文本域名称选择器

时间:2013-10-07 13:44:33

标签: jquery forms validation

我有一张表格:

<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 []”,但这是我无法改变的:(

有人可以帮我吗?

关心所有人。

4 个答案:

答案 0 :(得分:3)

那里有几个问题:

  1. 您引用的代码实际上有语法错误,所以不会给您说错误,您已经在单词name之后结束了JavaScript字符串。

  2. 当您测试的属性值包含除字母A-Z之外的任何内容时,最好将其放在引号中。

  3. length最后是“th”,而不是“ht”

  4. ...在jQuery it's a property中,不是方法,因此您不希望()之后

  5. 您在选择器中使用的名称(data_nascimento_baneficiario_1)与表单中的名称(data_nascimento_beneficiario_1)不匹配,请注意“baneficiario”开头的“a” “在选择器中。

  6. 所有在一起: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)

你有一个拼写错误,长度不是函数()所以不需要用()

调用它

更改此

lenght()

length

DEMO

答案 3 :(得分:0)

请注意确定为什么不起作用,但解决方法是

$("input").filter(function(){ 
     return this.name = 'form[data_nascimento_beneficiario_1]'}
).val().length