0

我无法让.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

4 回答 4

4

您需要逃避[],因此将您的选择器更改为

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

文档

要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须用两个反斜杠转义:\。

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

$("[name^=age]")
于 2013-10-26T13:07:29.773 回答
1

试试这个

$("input[name='age[]']").each()
于 2013-10-26T13:06:43.760 回答
0

$("[name=age[]]")似乎不是一个有效的选择器。试试$("[name^=age]")吧。

于 2013-10-26T13:07:15.817 回答
0

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

$.each( yourarrayname, function( key, value ) {
  alert( key + ": " + value );
});
于 2013-10-26T13:18:31.210 回答