Jquery Ajax Validate Флажки - PullRequest
2 голосов
/ 13 июля 2010

Вероятно, простое решение, так что я немного смущен, но JS на самом деле не моя сильная сторона, поэтому я решил спросить.

Я использую плагин Jquery Form отправить группу флажков для требований к приложению по планированию событий, которое я создаю.

У меня проблемы с тем, чтобы мой обратный вызов для предварительной проверки отклонил форму, если нет ключа массива для 'требования'.Я знаю, в php, я мог бы просто использовать что-то вроде array_key_exists или просто проверить isset (), но я не уверен, что родственный в js.код следует.

<form id="choose_reqs" method="post" action="http://www.domain.com/generator/chooseReqs/" enctype="multipart/form-data">
            <p>I'm planning on getting:</p>
            <?php foreach($_SESSION['event']->opt_r as $r){?>
                <span style="display:block; width:120px; padding:4px; border:1px #ccc solid;"><input type="checkbox" value="<?=$r;?>" name="requirement[]"/><?=$r;?></span>
            <?php }?>
            <input type="submit" name="event_chosen" value="Next" />
        </form>

А затем связанный js, который запускается после загрузки формы в:

 function eventTypeChosen(responseText, statusText, xhr, $form)  {

   var options = {  
        target:        '#app',  
        beforeSubmit: formSubmitCheck,
        success:       reqsChosen  
    }; 
        setNav();
        $('#choose_reqs').ajaxForm(options); 
   } 

   function setNav(){
        $('#start_over').click(start);
   }


   function formSubmitCheck(formData, jqForm, options){

        if(formData.hasOwnProperty('requirement')){ 
            alert('Please check at least one requirement'); 
            return false; 
        }else{

    $(jqForm).fadeOut(200);
    return true;
    }
   }

Очевидно, что-то не так с методом .hasOwnProperty () и как ям использую его.

Ответы [ 2 ]

2 голосов
/ 13 июля 2010
function formSubmitCheck(formData, jqForm, options){

        if($('input[name=requirement[]]').fieldValue().length==0){ 
            alert('Please check at least one requirement'); 
            return false; 
        }else{

    $(jqForm).fadeOut(200);
    return true;
    }
   }
1 голос
/ 13 июля 2010

На странице плагина формы, которую вы указали в комментариях:

formData - это массив объектов, представляющих имя и значение каждого поля, которое будет отправлено на сервер ...

Попробуйте распечатать объект formData на консоли, чтобы вы могли проверить его структуру.

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