我无法使用.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;});
});
答案 0 :(得分:4)
您需要esacpe []
,因此将您的selctors更改为
$("[name=age\\[\\]]")
使用任何元字符(例如!“#$%&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 );
});