如何解决检查对象的空白值并显示错误
我试图弄清楚如何检查对象中的任何值是否为空,然后显示相应的错误。
表单输入如下:
<form role="form" action="home.PHP" class="addLaneForm" id="addLaneForm" name="addLaneForm">
<label for="addlanepartnercode">Partner Code</label><span id="addlanepartnercodeError" class="text-danger laneError" style="display:none;"> * </span>
<input type="text" class="form-control validation" id="addlanepartnercode" placeholder="Enter Partner Code" />
<label for="addlanepartnername">Partner Name</label><span id="addlanepartnernameError" class="text-danger laneError" style="display:none;"> * </span>
<input type="text" class="form-control validation" id="addlanepartnername" placeholder="Enter Partner Name" />
<label for="addlaneipicy">IPI/CY</label><span id="addlaneipicyError" class="text-danger laneError" style="display:none;"> * </span>
<select class="form-control validation" id="addlaneipicy">
<option></option>
<option value="YES">YES</option>
<option value="NO">NO</option>
</select>
// few more inputs and selects
<button type="button" class="btn btn-default btn-flat addLanesubmit" id="addLanesubmit" name="addLanesubmit">Add</button>
</form>
这是onClick事件:
$('#addLanesubmit').on('click',function(e){
e.preventDefault();
let partnerCode = $('#addlanepartnercode').val();
let partnerName = $('#addlanepartnername').val();
let ipiCy = $('#addlaneipicy').val();
let addlane = new ProcessLane();
let addlanecriteria = {
partnerCode: partnerCode,partnerName: partnerName,ipiCy: ipiCy
}
// how I typically would check the values below:
if(addlanecriteria.partnerCode == ""){
$('#addlanepartnercodeError').show();
return false;
}
if(addlanecriteria.partnerName == ""){
$('#addlanepartnernameError').show();
return false;
}
else{
addlane.addLaneProcessing(addlanecriteria);
}
});
我通常检查值的方式是多余且耗时的。
我确实在输入中添加了一个名为“ laneError”的类。我试图通过调用函数使用它来显示错误,如下所示:
function showAllErrors(){
if($(".addLaneForm .validation") == ""){
$('.laneError').show();
}
}
但是当我能够调用该函数时,我只能显示第一个错误,即“ addlanepartnercodeError”。
必须有一种更简单的方法来检查对象中的值。
解决方法
您可以拥有如下所示的可重用功能:
showErrorMsg(elemId) {
if($.trim($('#' + elemid).val()) === '') {
$('#' + elemId + 'Error').show()
return true;
}
return false;
}
所以您的代码就是:-
$('#addLaneSubmit').on('click',function(e){
e.preventDefault();
let Error = false,addlane = new ProcessLane();
$('form')
.find("input[id^='add']")
.each((i,e){
if(!Error) {
Error = showErrorMsg($(e).attr('id'))
}
})
if(!Error) {
// Your form has no errors,do your thing here
addlane.addLaneProcessing(addlanecriteria);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。