JQuery селектор формы элемента массива php - PullRequest
3 голосов
/ 12 октября 2011

я пытаюсь использовать приведенный ниже код для выбора элемента формы (я получаю значения для проверки текста)

$('#box1 [name=item[]]').val();
$('#box2 [name=item[]]').val();

я пытаюсь получить значение следующего

<form..>
   <div id='box1'> <input type='text' name='item[]'/> </div>
   <div id='box1'> <input type='text' name='item[]'/> </div>
</form>

Мне нужно использовать 'item []' в квадратных скобках [], потому что php может извлечь эти данные в виде массива

$data = $_REQUEST['item'];

Возвращает массив, содержащий все данные в 'item'

Проблема в том, что $ ('# box [name = item []]'). Val () не работает, как мне заставить его работать или есть другой способ сделать это?

Ответы [ 3 ]

2 голосов
/ 12 октября 2011

Вам нужно экранировать [ и ] в селекторе jQuery, поскольку они имеют специальное значение (селекторы атрибутов):

$('#box1 [name="item\\[\\]"]').val();
$('#box2 [name="item\\[\\]"]').val();

Документация jQuery гласит:

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

1 голос
/ 12 октября 2011

, если вы могли бы дать входам имя класса, например "input_item" и чем

$("input.input_item").each(function() {

    // do something with $(this).val()
});
0 голосов
/ 12 октября 2011

Try -

$('#box1 input[name="item[]"]').val()

Я только что добавил двойные кавычки вокруг значения name и добавил селектор input к значению селектора.

Demo - http://jsfiddle.net/ipr101/JbW5m/

...