2013-02-24 1 views
1

У меня есть сценарий AJAX, который обрабатывает одну из нескольких форм на странице. Поскольку на каждой странице есть несколько форм, которые генерируются циклом PHP, идентификаторы различных полей ввода имеют последовательный номер, добавленный к ним, используя переменную $ formКак передать значение в поле ввода с последовательным идентификатором с помощью jQuery?

В каждой форме есть две кнопки отправки, с другое значение, которое я хотел бы передать в качестве переменного, используя скрытое поле ввода, чтобы вызвать различные действия по обработке формы, т.е.

<input type='hidden' id='button$form' value='' /> 
<button type='submit' class='submit_s' value='view' style='margin-right:20px' onclick='return setHiddenButtonValue(this.value);'>View</button> 
<button type='submit' class='submit_s' value='email' style='margin-right:20px' onclick='return setHiddenButtonValue(this.value);'>Email</button> 

данные из формы обрабатывается с помощью сценария AJAX в форма:

var form_data = { 
      name: $jform.find("[id^=name]").val(), 
      date: $jform.find("[id^=date_hidden]").val(), 
      time: $jform.find("[id^=time]").val(), 
} 

Поэтому я можно добавить запись для скрытого ввода кнопки для этого, то есть:

button: $jform.find("[id^=button]").val(), 

И затем использовать его таким образом:

if (form_data.button == 'email') { 
     $jform.fadeOut(800); 
    } 

То, что я не могу работать, как сделать, как передайте переменную на скрытый ввод кнопки. Как вы видите, я добавил OnClick событие каждой из кнопок Submit, а затем я надеялся, что добавив следующую строку в моей JQuery будет работать:

function setHiddenButtonValue(buttonValue) 
{ 
    $j("[id^=button]").value = buttonValue; 
    return true; 
} 

Но это не работает. Может ли кто-нибудь меня прямо посадить?

+0

Хм, почему бы вам не использовать '.val()' как в 'form_data.button.val (buttonValue) 'или' $ j ("[id^= button]"). val (buttonValue); '? – Alexander

+0

@ Александр Я не уверен, где вы предлагаете включить это. Не могли бы вы уточнить? – Nick

ответ

0

Я не уверен, что вы можете изменять скрытые входы во всех браузерах. Кроме того, я боюсь, что в jquery нет метода .value(). Так что просто используйте $j("[id^=button]").val(buttonValue); или .attr('value', buttonValue);

+0

Спасибо. Я пробовал обе версии, и значение кнопки не устанавливается. Когда я добавляю его вручную, он переходит к моим сценариям в порядке. Я использую Safari, поэтому он может быть связан с браузером. Есть ли альтернативный метод передачи другого значения в зависимости от того, нажата ли кнопка «Просмотр» или «Электронная почта»? Это все, что я пытаюсь сделать. – Nick

+0

Я думаю, что я решил это, сломав скрытый ввод, добавив класс «email» и «view» к соответствующим кнопкам отправки, а затем добавив чек в функцию отправки, чтобы увидеть, является ли класс 'email' или 'view' существует, т.е. 'if ($ jthis.hasClass ('email'))'. Отсюда я могу установить переменную и передать ее в form_data – Nick

Смежные вопросы