【发布时间】:2014-11-23 18:55:15
【问题描述】:
通过这个小提琴可能最容易解释:http://jsfiddle.net/shanomurphy/dL688o9j/
我想根据选择的单选按钮显示/隐藏表单的某些部分。检查单选按钮时,我显示一些额外的表单字段并隐藏其他字段。我只希望 Parsley.js 验证显示的字段。
当更改所选的单选按钮时,我遇到问题,并且已经运行了欧芹验证。
// Vars
var drinks_fields = $('#drinks');
var food_fields = $('#food');
// Hide fields until needed
drinks_fields.hide();
food_fields.hide();
$("input[name=choice]").on('click', function() {
if ( $(this).val() == 'Drinks' ) {
// Show drinks hide food
drinks_fields.show();
food_fields.hide();
// Update required
$("input[name=drinks]").prop('required',true);
$("input[name=food]").prop('required',false);
} else if ( $(this).val() == 'Food' ) {
// Show food hide drinks
food_fields.show();
drinks_fields.hide();
// Update required
$("input[name=food]").prop('required',true);
$("input[name=drinks]").prop('required',false);
}
});
<form data-parsley-validate="true">
<fieldset>
<legend>Choice</legend>
<input type="radio" name="choice" value="Drinks" required data-parsley-error-message="Choose drinks or food"/>Drinks
<input type="radio" name="choice" value="Food"/>Food
</fieldset>
<fieldset id="drinks">
<legend>Drinks</legend>
<input type="checkbox" name="drinks" data-parsley-mincheck="2" data-parsley-trigger="change" data-parsley-error-message="Choose min 2 drinks"/>Water
<input type="checkbox" name="drinks"/>Pepsi
<input type="checkbox" name="drinks"/>Orange Juice
</fieldset>
<fieldset id="food">
<legend>Food</legend>
<input type="checkbox" name="food" data-parsley-mincheck="2" data-parsley-trigger="change" data-parsley-error-message="Choose min 2 foods"/>Cake
<input type="checkbox" name="food"/>Hotdog
<input type="checkbox" name="food"/>Pizza
</fieldset>
<button type="submit">submit</button>
</form>
【问题讨论】:
标签: javascript jquery forms validation parsley.js