Javascript 检查对象的空白值并显示错误
我试图找出如何检查对象中的任何值是否为空,然后显示相应的错误 表单输入如下所示:Javascript 检查对象的空白值并显示错误,javascript,jquery,function,validation,Javascript,Jquery,Function,Validation,我试图找出如何检查对象中的任何值是否为空,然后显示相应的错误 表单输入如下所示: <form role="form" action="home.php" class="addLaneForm" id="addLaneForm" name="addLaneForm"> <label for="addlanepartnercode">Partner Co
<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>
我通常检查这些值的方法是冗余的和耗时的
我确实在输入中添加了一个名为“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);
}
});
我在这一部分遇到了一个错误:“#add']@JohnBeasley已经直接键入了它,现在就测试它,基本上,它应该是
“input[id^='add']”
,双引号和no,
,每个循环应该有(I,e)
传递错误:elemid不是defined@JohnBeasley事实并非如此,你能在这里发布你使用的JS和演示html代码,保存并粘贴生成的链接吗below@JohnBeasley我的错在elemid之前应该有一个#
$('#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);
}
});