Jquery Ajax验证复选框

时间:2010-07-13 15:27:31

标签: javascript jquery validation

可能是一个简单的解决方案,所以我有点尴尬,但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 个答案:

答案 0 :(得分:2)

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 :(得分:1)

您在评论中链接的表单插件页面:

  

formData是一个对象数组,表示将发送到服务器的每个字段的名称和值...

尝试将formData对象打印到控制台,以便验证其结构。