jquery - 条件在 jquery required 验证器中不起作用
问题描述
我有多个动态下拉列表,我正在通过 jquery required 验证器对其进行验证。但问题是下拉菜单从 0 索引开始,因此在选择 Select 时验证不起作用。我正在使用以下代码。
jQuery('form#add_form :input').each(function(){
jQuery(this).rules('add', {
required: function(element) {
if(element.type=='select') {
if(jQuery(this).children('option:selected').val() == '0')
{
return false;
}
else
{
return true;
}
} else
{
return true;
}
} });
});
表格标签:
{{Form::open(array('','method' => 'post','class'=>'add-form','id'=>'add_form')) }}
@foreach($parent_attrs as $pattr)
<div class="col-md-6">
<label>
{!! Form::select('product'.$pattr->id, $products, $pattr, ['class' => 'form-control']) !!}
</div>
@endforeach
解决方案
这是一个片段。
$('form#add_form').validate();
$('select').each(function () {
$(this).rules('add',{
required_select: true
});
});
$.validator.addMethod('required_select', function(value, element) {
return value > 0;
}, 'Please choose a option');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>
<form id="add_form" method="post" action="" >
<select id="product_1" name="product_1">
<option value="0">Select Product 1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select id="product_2" name="product_2">
<option value="0">Select Product 2</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button type="submit" name="submit"> Submit </button>
</form>
希望这会有所帮助:)
推荐阅读
- java - Java Regex递归获取特定单词前后的11个单词
- flutter - 如何从服务器中读取 VCF 文件?
- javascript - 带有多个参数的角度 6 管道 html
- css - 用css设计三边圆形边框和一个带断开角的边框
- objective-c - 未能获得 credential.state 和 getCredentialStateForUserID
- javascript - 如何将异步方法拆分为更小的部分并一个接一个地调用它们?
- jquery - 如何在一行上获得 3d 瓷砖并在悬停时获得缩放效果?
- angular - Jasmine -> 设置组件时无法读取未定义的属性订阅
- git - Visual Studio GIT 推送认证错误
- sql - 对每一行求和,然后在每一行的新字段中显示结果