让我总结一下您的问题:“有一组功能,普遍接受,统一和可靠,基本上是验证表单数据的标准方法,这是否合理/可行?”
如果我总结的是真的,那么答案是:jQuery Validation。顾名思义,您需要 jQuery 和 jQuery Validation 才能完成这项工作。
以下是有关如何使用此工具的示例。
HTML:
<form id="myForm">
<input type="text" name="currency">
<input type="text" name="amount">
</form>
Javascript:
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true
},
"amount": {
number: true
}
}
});
默认情况下,在 KeyUp 上触发验证。因此,当用户更改字段货币并违反上述规则之一时,jQuery Validation 将自动提供预构建通知消息。
这些是上述规则的预构建消息:
- minlength:请输入至少三个字符
- 必填:此字段为必填项
- 号码:请输入一个有效的号码
如果您想验证我们的汇率表中是否存在某种货币怎么办?
答案是:只需添加自定义验证方法。
$.validator.addMethod("checkCurrency",
function(value, element) {
var result = false;
$.ajax({
type:"GET",
async: false,
url: "012_ajax.php", // script to validate in server side
data: {currency: value},
success: function(data) {
result = (data == "1") ? true : false;
}
});
// return true if currency is exist in database
return result;
},
"Currency is not exist."
);
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true,
checkCurrency: true
},
"amount": {
number: true
}
}
});
使用此代码,每次用户在表格中输入不存在的货币时,表单将始终显示“货币不存在”消息。
最后一个问题:我可以为这个插件创建自定义消息吗?
答案是肯定的。
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true,
checkCurrency: true
},
"amount": {
number: true
}
},
messages: {
"currency": {
minlength: "Currency should at least 3 char or more",
required: "Currency is required"
},
"amount": {
number: "Amount must be number"
}
}
});
现在,每次用户违反上述规则时,表单都会以上述代码中的状态给出消息。
这个插件的重要之处,就像每个表单验证都应该做的那样,只要数据没有被验证,就不会提交数据。好吧,只要用户没有从他的浏览器中关闭/禁用 javascript。:)
更新
上面的答案是用于客户端验证。
对于服务器端验证,互联网上有 PHP 表单验证脚本,其中有:
- http://html-form-guide.com
- 苏亚雷斯
他们有内置的验证规则,用户可以添加自定义规则。
希望这会有所帮助。