Возможно, это простое решение, поэтому я немного смущен, но JS на самом деле не моя сильная сторона, поэтому я думаю, что я спрошу.JQuery Ajax Validate Checkboxes
Я использую плагин Jquery Form, чтобы отправить группу флажков для требований к приложению планирования событий, которое я делаю.
У меня возникли проблемы с выполнением моей проверки правильности запроса на возврат, если нет ключа массива для «требования». Я знаю, что в php я мог бы просто использовать что-то вроде array_key_exists или просто проверять на isset(), но я не уверен, что cognate находится в 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
Сам плагин обрабатывает определение объекта formData и других аргументов. Формат описан здесь http://jquery.malsup.com/form/#validation - но в этом примере они используют текстовые входы, поэтому ключи определены, и они могут просто проверить, пусты ли значения. Mine - это флажки, поэтому, если ничего не проверено (это то, что я пытаюсь отказать), нет ключа для требования, и поэтому мне нужно это проверить. – DeaconDesperado