我想做什么
我使用以下脚本来验证表单提交。我有一个动态填充数据的文本框“#MemberIDs”,即“,100,101,105”。我希望在提交表单时删除第一个逗号,但直到第一个“if语句”通过验证时才删除。
问题
电子邮件验证工作正常,但无论电子邮件通过验证还是验证失败,第二个“if语句”都不会执行。如果我删除第二个“if语句”并只使用替换脚本,它将删除逗号,无论电子邮件通过还是验证失败。
$("form").submit(function (e) {
var email = $('#Email').val();
var email2 = $('#Email2').val();
var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i
if (!pattern.test(email) || email != email2) {
alert('You either entered an invalid E-mail address, or the \"Email\" and \"E-mail Confirm\" do not match.');
e.preventDefault(e);
}
if ($("form").valid()) {
var mid = $('#MemberIDs').val().replace(/^[,]/, '');
$('#MemberIDs').val(mid);
}
});
答案 0 :(得分:1)
你真的不需要第二个if语句。
如果测试通过了reg ex,那么您可以将以下操作放入else{}
。
以下是我的意思:
$("form").submit(function (e) {
e.preventDefault();
var email = $('#Email').val();
var email2 = $('#Email2').val();
var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i
if (!pattern.test(email) || email != email2) {
alert('You either entered an invalid E-mail address, or the \"Email\" and \"E-mail Confirm\" do not match.');
}
else {
var mid = $('#MemberIDs').val().replace(/^[,]/, '');
$('#MemberIDs').val(mid);
// form submission here? AjAX?
$.ajax({
// Whatever you need
)}
}
});