2015-05-07 4 views
1

У меня есть несколько флажков в HTML, и я хочу убедиться, что проверено хотя бы одно. И я бы хотел использовать механизм проверки jQuery, чтобы мне не нужно было управлять бизнес-представлением сообщений об ошибках. Кроме того, я хочу сделать это перед отправкой формы. Я хочу проверить его, нажав кнопку. Мои коды любит это:Как я могу проверить установленный флажок?

HTML:

<div class="control-group"> 
    <label class="label-class"> 
     <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
    </label> 
    <label class="label-class"> 
     <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
    </label> 
    <label class="label-class"> 
     <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
    </label> 
</div> 

JavaScript:

$("button").click(function(e) { 
    var isOk = true; 
    isOk = $("myForm").validate({ 
     rules: { 
      testing: { 
       minlength: 1 
      } 
     }, 
     message: { 
      testing: "please select at least one item" 
     } 
    }); 
    return isOk; 
}); 

Но это не очень хорошо работает. Как мне реализовать эту логику?

+1

Есть ли причина, вы с помощью флажков против радио-кнопок? – Taplar

+0

Вы попробовали '$ (": checked "). Length> 0'? –

+0

@Taplar: _ «Есть ли причина, по которой вы используете флажки против радиокнопки?» _ - радиокнопки допускают _at most_ один выбор, но он хочет _at наименьший_, поэтому я думаю, что это может означать, что пользователь должен иметь возможность выберите несколько вариантов. – CBroe

ответ

1

попробуйте использовать ------ «требуется: правда»

+0

Спасибо за ваше предложение! вы имеете в виду «тестирование: {required: true, minlenght: 1}»? Я просто попытался в соответствии с вашим предложением, но проверка еще не сработала. –

1

Подайте форму, если есть больше чем 1 проверяется флажок элемента.

HTML:

<div class="control-group"> 
<label class="label-class"> 
    <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
</label> 
<label class="label-class"> 
    <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
</label> 
<label class="label-class"> 
    <input type="checkbox" data-validation-minchecked-minchecked="1" value="1" name="testing"></input> 
</label> 
</div> 
<button id="button">Submit</button> 

JQuery:

$("#button").click(function(e) { 
    return ($(":checked").length > 0); 
}); 

Или:

$("#button").click(function(e) { 
    if ($(":checked").length > 0) 
     // Submit your form here 
    else 
     // Display warning here 
}); 
+0

Привет, это работает. Но недостатком является то, что это решение не может использовать функцию проверки JQuery, например, отмечать флажок как красный и автоматически предоставлять сообщение об ошибке. –

+0

Как вы думаете, второе решение это сделает? –

+0

Второе решение не может использовать Jquery validator. Jquery validator предоставляет некоторые функции автоматически, например, отмечать недействительный элемент как красный и присутствовать в сообщениях об ошибках вокруг элемента и т. Д. Используйте второе решение, мы можем имитировать поведение валидатора jquery сами по себе, но не удобно. –

0

Существует много ошибок, которые вы делаете в вашем коде. Я изменил свой код, изменил имена флажков, добавил к ним классы и другие вещи.

<form id="myForm"><div class="control-group"> 
    <label class="label-class"> 
     <input type="checkbox" class="group1" value="1" name="testing1"></input> 
    </label> 
    <label class="label-class"> 
     <input type="checkbox" class="group1" value="1" name="testing2"></input> 
    </label> 
    <label class="label-class"> 
     <input type="checkbox" class="group1" value="1" name="testing3"></input> 
    </label> 
    <button>Button</button> 
</div> 
</form> 

И JavaScript:

$("#myForm").validate({ 
     rules: { 
      testing1: { 
       require_from_group: [1, ".group1"] 
      }, 
      testing2: { 
       require_from_group: [1, ".group1"] 
      }, 
      testing3: { 
       require_from_group: [1, ".group1"] 
      } 
     }, 
     message: { 
      testing1: "please select at least one item", 
      testing2: "please select at least one item", 
      testing3: "please select at least one item", 
     } 
    }); 

$("button").click(function(e) { 

return $("#myForm").valid(); 

}); 

См jsFiddle

+0

Привет, спасибо! возможно ли, что я просто проверяю флажок, но не всю форму? Скажем, я могу создать настраиваемое правило в «$ (« кнопка »). Click (function (e) {...});"? –

+0

Один из способов, которым я могу думать, - это правило изменения динамически. Этот URL дает введение: http://randomactsofcoding.blogspot.in/2008/09/starting-with-jquery-dynamically.html –

Смежные вопросы