jquery / плагин валидации / литералы объекта: выбор нескольких флажков - PullRequest
1 голос
/ 20 июля 2010

Хорошо, я пытался прочитать об этом, но я в тупике. К сожалению, я не совсем правильно понимаю JavaScript.

При обработке формы с помощью плагина проверки jqueries вы отправляете переменные в почтовую программу php, используя буквенную запись:

  submitHandler: function() { 
  $.post("includes/mail-form.php",
  {  
  age : $("#form-age-id").val(),
  email : $("#form-email-id").val(), 
  name : $("#form-name-i").val(),

Что я понимаю. переменной возраста присваивается значение из элемента. Когда у меня есть несколько флажков, я не могу использовать:

$("input.checkboxes:checked').val()

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

 var allVals = [];
 $('input.orthodontic-medical-form-disease:checked').each(function() {
         allVals.push($(this).val());
      });
 return allVals;

Чего я не понимаю, так это как назначить возвращаемое значение литералу. Я пробовал

  submitHandler: function() { 
     $.post("includes/mail-form.php",
  {  
  age : $("#form-age-id").val(),
  email : $("#form-email-id").val(), 
  name : $("#form-name-i").val(),
         checkboxes : function(){
           var allVals = [];
    $('input.orthodontic-medical-form-disease:checked').each(function() {
         allVals.push($(this).val());
         });a
           return allVals;
         }

Но я предполагаю, что это присваивает переменную саму функцию, а не возвращаемое значение. Может ли кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 20 июля 2010

Попробуйте это:

checkboxes : $('input.orthodontic-medical-form-disease:checked').map(function() {
                 return $(this).val();
             }).get() // returns array of checked values

В качестве альтернативы, инкапсулируйте свою логику 'получения значения флажка' в именованную функцию:

function getCheckedVals() {
    var rv = $('input.orthodontic-medical-form-disease:checked').map(function() {
                 return $(this).val();
             }).get();
    return rv;
}

и просто назовите это:

checkboxes: getCheckedVals()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...