MVC+Jquery开发B/S系统:③表单提交
2009-09-14 00:00:00 来源:WEB开发网三:好了,Lightbox已经实现了,也能show出各种类型的信息了。
下面还剩下表单验证。 其实表单验证大有文章可做。我这也不能一一做到。目前只做了些简单的验证。以后会实现比较复杂的错误提示效果。其实这都是 体力活,上面没要求我也懒的弄-。-
验证我采用的是给control一些自定义属性,然后再判断其值是否合法。
Code
//输入验证
$.fn.inputValidate = function() {
$("input,select,textarea", this).each(function() {
var isnull = $(this).attr("isnull");
var regexValue = $(this).attr("regex");
var defautValue = $(this).attr("dvalue");
// //①非空注册焦点事件
// if (isnull == "0") {
// $(this).blur(function() {
// if (this.value == "" || this.value == defautValue)
// $(this).addClass("focus").focus();
// else
// $(this).removeClass("focus");
// });
// }
//②正则注册onchange事件
if (regexValue != undefined) {
var thisValue = this.value;
//检查类型绑定不同事件
if ($(this).attr("type") == "text") {
$(this).bind("keyup", function() {
if ($(this).val() == "")
return;
var re = new RegExp(regexValue, "ig");
var newValue = this.value;
if (!re.test(newValue)) {
$(this).val(thisValue).focus();
}
else {
thisValue = newValue;
$(this).val(newValue);
}
});
}
}
function checkRegex(value, re) {
}
//③最小长度
//④其他
});
}
//提交验证
$.fn.submitValidate = function() {
var result = true;
$("input:visible,select:visible,textarea:visible", this).each(function() {
result = true;
var thisValue = "";
if ($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox") {
thisValue = $("input[name='" + this.name + "']:checked").val();
}
else
thisValue = $(this).val();
//判断是否违法
if ($(this).attr("isnull") == "0") {//① 是否必填 且不能为空或缺省值
result = (thisValue != "" && thisValue != $(this).attr("dvalue"));
}
else if (thisValue != "") {//② 是否符合格式 属性为 regex 正则
var reValue = $(this).attr("regex");
if (reValue != undefined) {
re = new RegExp(reValue, "ig");
result = re.test(thisValue);
}
}
// //③ 是否符合最大长度
// var maxLength = $(this).attr("maxLen");
// if (maxLength != undefined && maxLength != "-1") {
// if (thisValue.length > parseInt(maxLength))
// result = false;
// }
// //④ 是否符合最小长度
//返回false
if (result == false) {
$(this).addClass("focus").focus().blur(function() {
if (this.value != "" && this.value != $(this).attr("dvalue")) {
$(this).removeClass("focus");
}
});
//alert($(this).attr("name"));
return false;
}
});
return result;
}
这些都是比较简单的东西,拿出来献丑了。 下面是我之前写的关于绑定的,有兴趣的可以看看。
编缉推荐阅读以下文章
- MVC+JQuery开发B/S系统:②表单绑定
- MVC+Jquery开发B/S系统:①列表绑定
更多精彩
赞助商链接