2013-10-07 82 views
0

我有一个表格:jQuery的:文本字段名称选择

<form id="userForm" action="xpto"> 
    <input type="text" name="form[data_nascimento_beneficiario_1]" value /> 
    <input type="submit" value="Continuar" /> 
</form> 

现在上一个脚本文件我尝试让现场的lenght进行验证:

$("#userForm").submit(function (e) { 
    alert($("input[name="form[data_nascimento_beneficiario_1]"]).length()); 
}); 

但我总是得到“类型错误:无法调用空的“长””,

我想这个问题是对名字有‘书[]’,但没有什么我可以改变:(

任何人都可以帮助我吗?

对所有人的问候。

回答

3

的几个问题有:

  1. 按实际报价代码有语法错误,因此不会给你你已经错误说,你已经结束了你的JavaScript字符串,在name这个单词后面。

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

  3. length是 “号” 的结尾,而不是 “HT”

  4. ...在jQuery的it's a property,不是方法,所以你不想()

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

全部在一起:Live Example | Source

alert($('input[name="form[data_nascimento_beneficiario_1]"]').length); 

(这里,我用'把周围的选择符的报价和"把属性值引号包围。其他的方式也有效。)

+0

我也tryed了这一点,但没有我给的我同样的错误。 –

+0

@NunoSimões:你引用的代码不能给你你所说的错误,所以它听起来像你可能没有编辑正确的文件或者其他的东西。还请注意上面的#4(如果您没有看到编号列表,请点击刷新)。 –

+0

@NunoSimões:我当时正在做一个实例,发现了第五个问题。 –

0

你有一个错字:.lenght() - 它应该是length。另外,请小心你的报价包装。

你行改成这样:

alert($("input[name='form[data_nascimento_baneficiario_1]']).length); 
0

你有一个错字,和长度是不是一个函数(),所以没有必要用()

更改此

lenght()

length调用它的

DEMO

0

注知道为什么不工作,但一个解决办法是

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