.Each()带有输入数组

时间:2013-10-26 13:03:17

标签: jquery

我无法使用.each()函数来处理一组文本框。我似乎无法弄清楚我错过了什么。

如果我使用$("input[type=text]").each(),它可以正常工作。

如果我使用$("[name=age[]]").each()则无效。

<?php 
  //this code is abbreviated
  foreach ($dbresult as $obj) {$output = "<input type='text' name='age[]' value='" . $obj['age'] . "'";}
?>
$(document).ready(function () {
    $("#form").submit(function () {
        $("[name=age[]]").each(function () {
            if (!$.isNumeric($(this).val())){return false;}
        return true;});
});

4 个答案:

答案 0 :(得分:4)

您需要esacpe [],因此将您的selctors更改为

 $("[name=age\\[\\]]")

DOCS

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\。

或者您可以使用Attribute Starts With Selector [name^="value"],例如

$("[name^=age]")

答案 1 :(得分:1)

试试这个

$("input[name='age[]']").each()

答案 2 :(得分:0)

$("[name=age[]]")似乎不是有效的选择器。请改为$("[name^=age]")

答案 3 :(得分:0)

如果您使用的是数组,则必须尝试使用​​代码

$.each( yourarrayname, function( key, value ) {
  alert( key + ": " + value );
});