У меня .each()
проблема с получением функции .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;});
});
Вам нужно esacpe []
, таким образом измените ваши selctors как
$("[name=age\\[\\]]")
Чтобы использовать любой из метасимволов (таких как!) # $% & '() * +,./:; <=>? @[] ^' {|} ~) Как буквальная часть имени, это должен сбежать с двумя обратными косыми чертами: \.
Или вы можете использовать Attribute Starts With Selector [name ^ = "value"], например
$("[name^=age]")
Попробуй это
$("input[name='age[]']").each()
если вы используете массив, вам нужно попробовать следующий код
$.each( yourarrayname, function( key, value ) {
alert( key + ": " + value );
});
$("[name=age[]]")
, похоже, не является допустимым селектором. Вместо этого попробуйте $("[name^=age]")
.