2 javascript validation optimization jquery
我有一个关于如何缩短Jquery if语句的问题.在我的表格中,我有几个字段,我检查它们是否填满.我知道有几个插件可以帮我,但我不想自己学习(在别人的帮助下;-))
我收到了这张支票
//---- First define hasError
var hasError = false;
//---- Get the value from the inputfield
var firstname = $('#firstname').val();
//---- Do the check
if(firstname == ''){
$("#error_firstname").show();
hasError = true;
}else{
$("#error_firstname").hide();
}
Run Code Online (Sandbox Code Playgroud)
我以为我可以像这样写:
(firstname == '') ? $(".firstname").show(): $(".firstname").hide();
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我不能把hasError = true放在其中,所以我最后不能问这个
if(hasError != false) {
//---- if error, don't refresh page and show errors
return false;
}else{
//---- Save values to DB and show succes message
}
Run Code Online (Sandbox Code Playgroud)
有人有个主意吗?
Tnx提前
Grtzz
维姆
首先,将其重构为一个函数,以便您可以将其重用于所有字段.
例:
function check(fieldname) {
var value = $('#' + fieldname).val();
var error = $('#error_' + fieldname);
if (value == '') {
error.show();
$.hasError = true;
} else {
error.hide();
}
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以按如下方式使用它:
check('firstname');
check('lastname');
// etc..
Run Code Online (Sandbox Code Playgroud)
当然,您可以通过将所有名称存储在数组中或仅通过获取$(':input')和调用check()循环来进一步重构它.你一直忙于重构;)你最终可以看看现有的表单验证插件是如何做到的.例如jQuery Validator.
整点是:不要重复代码.重构它.
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |