.Each () с входным массивом

0

У меня .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;});
});
  • 0
    Размещайте ваш визуализированный HTML, а не PHP.
Теги:

4 ответа

4
Лучший ответ

Вам нужно esacpe [], таким образом измените ваши selctors как

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

DOCS

Чтобы использовать любой из метасимволов (таких как!) # $% & '() * +,./:; <=>? @[] ^' {|} ~) Как буквальная часть имени, это должен сбежать с двумя обратными косыми чертами: \.

Или вы можете использовать Attribute Starts With Selector [name ^ = "value"], например

$("[name^=age]")
1

Попробуй это

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

если вы используете массив, вам нужно попробовать следующий код

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

$("[name=age[]]"), похоже, не является допустимым селектором. Вместо этого попробуйте $("[name^=age]").

  • 0
    Это не работает, если у вас есть и другие поля с именами, начинающимися с букв «age», например, «agelimit»

Ещё вопросы

Сообщество Overcoder
Наверх
Меню