关于动态验证之后,如何控制表单提交

ILOVE_ASPNET 2012-11-13 11:03:36


$.ajax({
url: "validate.xml",
dataType: "xml",
type: 'get',
error: function (xml) {
alert('Error loading XML document' + xml);
},
success: function (xml) {
$(xml).find("Data[Name='" + filename + "']").find("Item").each(function () {
var name = $(this).attr("Name");
var isNull = $(this).attr("IsNull");
var reg = $(this).attr("Reg");
var tip = $(this).attr("Tip");
readXMLStatus = true;
//给对应的元素添加focus事件以及blur事件
$("#" + name).focus(function () {
if (tip != "") {
$('#tipTable').css({ left: $.getLeft(this) + 'px', top: $.getTop(this) + 'px' });
$('.contenImage').html(tip);
$('#tipTable').fadeIn("fast");
// settipTableOut(name);
}
}).blur(function () {

//根据具体的逻辑判断当前 元素是否输入正确
//如果不允许为空
if (isNull == "true") {
//如果条件不允许为这且值为空
if ($("#" + name).val() == "") {

settipTableOut(name);
isSubmit = false;
} else {
//如果条件不允许为空且值也不为空
if (reg != "") {
//表示需要启动正则进行验证

var regex = new RegExp(reg);
if (!regex.test($("#" + name).val())) {
//错误提示
settipTableOut(name);
isSubmit = false;
} else {
//去除样式
settipTableIn(name);
}
} else {
settipTableIn(name);
}
}

} else {
//如果条件为空,且reg 不为空则表示要验证
if ($("#" + name).val() != "" && reg != "") {
var regex = new RegExp(reg);
if (!regex.test($("#" + name).val())) {
//错误提示

settipTableOut(name);
isSubmit = false;
} else {
settipTableIn(name);
}
} else {
settipTableIn(name);
}
}
});
});
}
});


说明下,上面这串代码功能也实现了,就是做的一个验证功能,根据xml所配置的 属性值来验证 表单, 这样单个触发blur 和focus 事件是没问题,关键是如果用户直接点击submit按钮这时候 ,就出现了一点问题,因为没条件触发focus和blur 只有单独文本框的时候 才满足条件,如何处理这个问题,求解答。
...全文
128 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ILOVE_ASPNET 2012-11-13
  • 打赏
  • 举报
回复
好冷清啊,没有人关注下么?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧