Як виконати перевірку для групи перемикачів (повинна бути обрана одна перемикач) за допомогою плагіну перевірки jQuery?
Як виконати перевірку для групи перемикачів (повинна бути обрана одна перемикач) за допомогою плагіну перевірки jQuery?
Відповіді:
З новими версіями jquery (я думаю, що більше 1.3), все, що вам потрібно зробити, це встановити необхідність одного з членів радіоприймача, а jquery подбає про інше:
<input type="radio" name="myoptions" value="blue" class="required"> Blue<br />
<input type="radio" name="myoptions" value="red"> Red<br />
<input type="radio" name="myoptions" value="green"> Green
Вищезазначене вимагає принаймні 1 з 3 варіантів радіозв’язку без назви "моїх опцій", перш ніж продовжувати.
Пропозиція етикетки Mahes, btw, чудово працює!
focusInvalid: false
до validate()
параметрів запобіжить підсвічування першої радіо кнопки.
використовувати наступне правило для перевірки вибору групи перемикачів
myRadioGroupName : {required :true}
myRadioGroupName - це значення, яке ви дали атрибуту name
label
тег про помилку, насправді плагін автоматично додає цей тег мітки про помилку.
Ви також можете скористатися цим:
<fieldset>
<input type="radio" name="myoptions[]" value="blue"> Blue<br />
<input type="radio" name="myoptions[]" value="red"> Red<br />
<input type="radio" name="myoptions[]" value="green"> Green<br />
<label for="myoptions[]" class="error" style="display:none;">Please choose one.</label>
</fieldset>
і просто додати це правило
rules: {
'myoptions[]':{ required:true }
}
Згадайте, як додати правила.
name="myoptions[]"
це трохи заплутано, оскільки натякає на те, що можна повернути кілька значень.
Відповідно до відповіді Брендона. Але якщо ви використовуєте ASP.NET MVC, який використовує ненав'язливу перевірку, ви можете додати атрибут data-val до першого. Мені також подобається мати мітки для кожного перемикача для зручності використання.
<span class="field-validation-valid" data-valmsg-for="color" data-valmsg-replace="true"></span>
<p><input type="radio" name="color" id="red" value="R" data-val="true" data-val-required="Please choose one of these options:"/> <label for="red">Red</label></p>
<p><input type="radio" name="color" id="green" value="G"/> <label for="green">Green</label></p>
<p><input type="radio" name="color" id="blue" value="B"/> <label for="blue">Blue</label></p>
Ще один спосіб перевірки - такий.
var $radio = $('input:radio[name="nameRadioButton"]');
$radio.addClass("validate[required]");
Сподіваюся, мій приклад вам допоможе
У мене була така ж проблема. Завершення просто написання спеціальної функції підсвічування та освітлення для валідатора. Додаючи це до параметрів validaton, слід додати клас помилки до елемента та його відповідної мітки:
'highlight': function (element, errorClass, validClass) {
if($(element).attr('type') == 'radio'){
$(element.form).find("input[type=radio]").each(function(which){
$(element.form).find("label[for=" + this.id + "]").addClass(errorClass);
$(this).addClass(errorClass);
});
} else {
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
$(element).addClass(errorClass);
}
},
'unhighlight': function (element, errorClass, validClass) {
if($(element).attr('type') == 'radio'){
$(element.form).find("input[type=radio]").each(function(which){
$(element.form).find("label[for=" + this.id + "]").removeClass(errorClass);
$(this).removeClass(errorClass);
});
}else {
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
$(element).removeClass(errorClass);
}
},
код для перемикача -
<div>
<span class="radio inline" style="margin-right: 10px;">@Html.RadioButton("Gender", "Female",false) Female</span>
<span class="radio inline" style="margin-right: 10px;">@Html.RadioButton("Gender", "Male",false) Male</span>
<div class='GenderValidation' style="color:#ee8929;"></div>
</div>
<input class="btn btn-primary" type="submit" value="Create" id="create"/>
і код jQuery-
<script>
$(document).ready(function () {
$('#create').click(function(){
var gender=$('#Gender').val();
if ($("#Gender:checked").length == 0){
$('.GenderValidation').text("Gender is required.");
return false;
}
});
});
</script>
Ставить повідомлення про помилку зверху.
<style>
.radio-group{
position:relative; margin-top:40px;
}
#myoptions-error{
position:absolute;
top: -25px;
}
</style>
<div class="radio-group">
<input type="radio" name="myoptions" value="blue" class="required"> Blue<br />
<input type="radio" name="myoptions" value="red"> Red<br />
<input type="radio" name="myoptions" value="green"> Green </div>
</div><!-- end radio-group -->