Проверьте, установлен ли флажок в JS - PullRequest
0 голосов
/ 05 марта 2012

Я новичок в JS и JQuery.В настоящее время у меня есть форма на form.php, которая содержит флажок.Когда пользователь нажимает кнопку «Отправить», переменные формы отправляются в файл form.js, где каждое значение проверяется на нулевое значение или нет.

Файл form.js работает отлично, однако для флажка, кажется, ничего не происходитбывает.У меня такое ощущение, что это связано с тем, как я объявил переменную.

Ниже приведен код для файла js:

var email = $('#email').val();
var website = $('#website').val();
var CHECKBOX = $('CHECKBOX').val();
...
...
if (CHECKBOX.checked == FALSE){
    var error = true;
    $('#notchecked_error').fadeIn(500);
}else{
    $('#notchecked_error').fadeOut(500);
}

Ответы [ 4 ]

0 голосов
/ 05 марта 2012
`$('CHECKBOX').val();`

Попытается найти элемент с тэгом CHECKBOX и вернуть его значение. Предположительно, вы хотите сослаться на флажок с идентификатором CHECKBOX:

var CHECKBOX = $('#CHECKBOX');

Чтобы проверить, проверено ли это:

if (!CHECKBOX[0].checked) {
  // CHECKBOX is not checked
}

Вы действительно должны изучить базовый JavaScript перед использованием jQuery. Обычно проверка начинается с отправки формы, которая может дать вам ссылку на форму. Затем вы можете ссылаться на все элементы формы как на свойства формы, вам не нужно создавать все эти объекты jQuery. например если вы создаете что-то вроде:

<form ... onsubmit="validate(this)"... >
  <input type="checkbox" name="checkbox">
</form>

Тогда в вашей функции проверки:

function validate(form) {
  if (!form.checkbox.checked) {
    // the checkbox isn't checked
  }
}

Вы можете подключить слушателя динамически, если хотите.

0 голосов
/ 05 марта 2012
$('input[type=checkbox]:checked') // If you have multiple checkboxes you can use this and loop through them to get additional info
$('#checkboxID:checked').length // To get one specific checkbox
0 голосов
/ 05 марта 2012

Я вижу две проблемы в вашем коде. Первое, что селектор в вашем назначении CHECKBOX неисправен. Должно быть

var CHECKBOX = $('#CHECKBOX').val();

или

var CHECKBOX = $('input[type=checkbox]').val();

вторая проблема в том, что вы читаете CHECKBOX.checked из функции val (), вам нужно прочитать его из самого флажка.

if(CHECKBOX.checked)
0 голосов
/ 05 марта 2012

Попробуйте использовать:

if ( $('#CHECKBOX').prop("checked") )

или:

if ( $('#CHECKBOX').is(":checked") )

Кроме того, убедитесь, что ваш флажок выбран правильно.

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