可能是一个简单的解决方案,所以我有点尴尬,但 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() 方法以及我使用它的方式有问题。
最佳答案
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;
}
}
关于javascript - Jquery Ajax 验证复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238704/