当goodsspec1 value不空时, goodsspec1, goodsprice1, goodspur1, goodsdate1 ,才需要验证
当goodsspec2 value不空时, goodsspec2, goodsprice2, goodspur2, goodsdate2 ,才需要验证
function ShowStr(x){
//var Str=document.getElementById(x).value;
var Str1=$("#goodsspec1").length;
var Str2=$("#goodsspec2").length;
//if($("#goodsspec1").length > 0){
if(Str1>0){
$('#editWorkForm').scojs_valid({
rules: {
goodsspec:['not_empty'],
goodsprice:[{regex: /^[1-9]\d*$/ }],
goodspur:['not_empty','digit',{regex: /^[1-9]\d*$/ }],
goodsdate:['not_empty','digit',{regex: /^\d+$/}]
goodsspec1:['not_empty'], //当这value不空时, goodsspec1, goodsprice1, goodspur1, goodsdate1 ,才需要验证
goodsprice1:[{regex: /^[1-9]\d*$/ }],
goodspur1:['not_empty','digit',{regex: /^[1-9]\d*$/ }],
goodsdate1:['not_empty','digit',{regex: /^\d+$/}]
goodsspec2:['not_empty'], //当这value不空时, goodsspec2, goodsprice2, goodspur2, goodsdate2 ,才需要验证
goodsprice2:[{regex: /^[1-9]\d*$/ }],
goodspur2:['not_empty','digit',{regex: /^[1-9]\d*$/ }],
goodsdate2:['not_empty','digit',{regex: /^\d+$/}]
},
messages: {
goodsspec1: {
not_empty: "请输入数量"
},
goodsprice1: {
regex:'请输入1≤整数'
},
goodsdate1: {
not_empty: "请输入货期",
regex:'请输入0≤整数'
},
goodspur1: {
not_empty: "请输入纯度",
regex:'请输入1≤整数'
}
},
wrapper:'.form-group1'
,onSuccess: function(response, validator, form) {
tipsOp(response.data,response.status);
if(response.url){
window.location.href=response.url;
}
}
});
}
}
将校验规则变成一个方法的返回值,在方法里进行判断
function rulesvalidate(){
var Str1=$("#goodsspec1").length;
var Str2=$("#goodsspec2").length;
let obj = {}
if(Str1&&Str2){
obj = {
//xxx需要校验的项
//goodspur:['not_empty','digit',{regex: /^[1-9]\d*$/ }],
//goodsdate:['not_empty','digit',{regex: /^\d+$/}]
}
}else if(Str1){
obj = {
//xxx需要校验的项
}
}else if(Str2){
obj = {
//xxx需要校验的项
}
}else{
obj = {
//xxx需要校验的项
}
}
return obj
}
function ShowStr(x){
$('#editWorkForm').scojs_valid({
rules: rulesvalidate(),
})
}
首先非常感谢原莱_的支持,答复给了我很大帮助。
按照建议的方式尝试几次成功,不太熟悉掌握不好,放弃了。
多条件valid验证太难了,考虑后保持原来统一form一次性验证。
在html中通过show/hide,对输入框进行显示/隐藏控制,也可以达到目的,同时增加隐藏=删除。
<div class="listx list-j3" style="{if !$arrServiceInfo['spec1']}display:none;{/if}float:left;">
<span class="input-group-addon">规格</span>
<input type="text" class="form-control" id="goodsspec1" name="goodsspec1" value="{$arrServiceInfo['spec1']}" onchange="ShowStr(this.id)" >
<span class="input-group-addon">纯度</span>
<input type="text" id="goodspur1" name="goodspur1" class="form-control" value="{$arrServiceInfo['pur1']}" onchange="ShowStr(goodsspec1.id)">
<span style="cursor: pointer;">
<a class="listx list-j3" onclick="ss('j3')" style="color:#FF771C;font-size:14px;font-weight:bold;text-decoration:none;">一</a>
</span>
</div>
<div class="listx list-j4" style="{if !$arrServiceInfo['spec2']}display:none;{/if}float:left;">
<span class="input-group-addon">规格</span>
<input type="text" class="form-control" id="goodsspec2" name="goodsspec2" value="{$arrServiceInfo['spec2']}" onchange="ShowStr(this.id)" >
<span class="input-group-addon">纯度</span>
<input type="text" id="goodspur2" name="goodspur2" class="form-control" value="{$arrServiceInfo['pur2']}" onchange="ShowStr(goodsspec2.id)" >
<span style="cursor: pointer;">
<a class="listx list-j4" onclick="ss('j4')" style="color:#FF771C;font-size:14px;font-weight:bold;text-decoration:none;">一</a>
</span>
</div>
<script type="text/javascript">
function ss(t){
if(t == 'j1'){
$('.list-j3').show();
$('.list-j4').show();
}else if(t == 'j3'){
$("#goodsspec1").attr("value","");
$('.list-j3').hide();
}else if(t == 'j4'){
$("#goodsspec2").attr("value","");
$('.list-j4').hide();
}
}
</script>