可能是一個簡單的解決方案,所以我有點尷尬,但JS是不是真的我的專長,所以我想我會問。jQuery的阿賈克斯驗證複選框
我使用Jquery Form插件提交一組複選框中用於爲活動策劃應用程序我提出的要求。我無法讓我的驗證presubmit回調
拒絕的形式,如果有對「要求」沒有數組的關鍵。我知道在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()方法,以及如何我使用它。
我可能會在這裏丟失一些明顯的東西,但你在哪裏定義'formData'對象?除非你(或者你正在使用的插件)正在做類似'var formData = {require:'something'};'我看不到這會怎麼樣? – HurnsMobile 2010-07-13 15:48:15
插件本身處理定義formData對象和其他參數。格式在這裏描述http://jquery.malsup.com/form/#validation - 但在這個例子中他們使用文本輸入,所以鍵被定義,他們可以檢查是否值爲空。我的複選框,所以如果沒有檢查(這是我試圖拒絕)沒有關鍵要求目前,所以我需要檢查。 – DeaconDesperado 2010-07-13 15:57:22