2015-10-28 2 views
0

Я пытаюсь проверить, установлен ли флажок с помощью метода is(), но он дает неожиданный результат. В любом случае, если я установил флажок или нет, метод возвращает false.is ('checked') метод фильтрации не работает правильно

HTML

<form action="" method="post" id="place_order"> 
<input type="checkbox" name="tos" class="required check-condition" /> 
<span class="error error-tos" style="display:none">* This field is required</span><br> 
<input type="submit" name="place_order" value="Submit Order" class="order-sb-btn" /> 
</form> 

Jquery

$("#place_order").submit(function() { 
    var is_tos_checked = $(".check-condition").is('checked'); 
    console.log(is_tos_checked); 
    if (is_tos_checked) { 
     $(".error-tos").hide(); 
     return true; 
    } else { 
     $(".error-tos").show(); 
     return false; 
    } 
}); 

Jsfiddle

http://jsfiddle.net/yogc5ypb/1/

ответ

5

Вы должны экспресс проверили как псевдо-селектор, то есть с префиксом :

.is(':checked'); 
+0

ахам, да работу. – user3467855

+1

Вы также можете использовать 'var is_tos_checked = $ (". Check-condition "). Prop ('checked');' –

+0

Ну, один возвращает логическое значение, в то время как другое возвращает значение свойства. Значение свойства в этом случае будет принудительно введено в его булевскую форму при проверке в состоянии, но все же, если вы хотите, чтобы логическое значение (как это делает OP), лучше всего использовать метод, который возвращает один. – Utkanos

0

Если вы хотите отправить форму, если пользователь проверил флажок, то вы можете использовать следующий метод also-

1.Write следующее заявление в HTML файл

<form action="" method="post" id="place_order"> 
<input type="checkbox" name="tos" class="required check-condition" /> 
<span class="error error-tos" style="display:none">* This field is required</span><br> 
<input type="submit" name="place_order" value="Submit Order" class="order-sb-btn" /> 
</form> 

2.Write следующее заявление в JS файл.

jQuery('.order-sb-btn').click(function(){ 
    var checkedValue = $('.required:checked').val(); 
    if(checkedValue == undefined) 
    { 
     alert('not checked'); 
     return false; 
    } 
    else 
    { 
      alert('checked'); 
    } 


}) 

При использовании вышеуказанной формы кода будет отправлен запрос, если пользователь установил флажок. Чтобы проверить пример пожалуйста, обратитесь следующим ссылка-

http://jsfiddle.net/1eygh774/1/

1

Я обычно использую .prop('checked') Так что в вашем коде вы изменили бы свою линию на:

var is_tos_checked = $(".check-condition").prop('checked'); 
Смежные вопросы