我有一个函数可以验证几个不同的条件。这是我的函数示例:
function checkData() {
var errorMsg = "",
fld1 = 0, //Number(document.getElementById('fld1').value),
fld2 = 5, //Number(document.getElementById('fld2').value),
fld3 = 1, //Number(document.getElementById('fld3').value),
fld4 = 0; //Number(document.getElementById('fld4').value);
if (!fld1) {
errorMsg += "Error 1\n\n";
}
if (fld1 === fld4) {
errorMsg += "Error 2\n\n";
}
if (fld2 > fld4) {
errorMsg += "Error 3\n\n";
}
if (fld3 > 3) {
errorMsg += "Error 4\n\n";
}
if (errorMsg !== "") {
var check = confirm(errorMsg + "\n Do you want to submit the form?");
if (check) {
return true;
} else {
return false;
}
}
return true;
}
<button onclick="checkData();">Click Here</button>
在上面的例子中,我硬编码了一些用于测试目的的值。但是,我想知道是否可以重构此代码并找到实现相同结果的更好方法?三元运算符会更适合吗?或者有另一种方法可以让它发挥作用?谢谢你。
在这个用例中,我认为“multiple-ifs”解决方案非常清楚,因此可以使用它。
如果你想优化一下,我只能建议
if(check){
return true;
}else{
return false;
}
成为
return !!check;
(这两个感叹词只是将任何对象强制转换为布尔值 :-))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句