Javascript 根据条件提交表格。滑动分页
我有一个表单和一个提交按钮。我想在这个提交按钮上使用jquery设置一个条件。我不想只在用户输入有效的电子邮件地址时才发布表单 HTML代码:Javascript 根据条件提交表格。滑动分页,javascript,jquery,html,Javascript,Jquery,Html,我有一个表单和一个提交按钮。我想在这个提交按钮上使用jquery设置一个条件。我不想只在用户输入有效的电子邮件地址时才发布表单 HTML代码: <form method="post" action="{% url sportdub.views.login %}"> <input type="text" name="email" value="" class="span8"/> <input type="submit"></button&
<form method="post" action="{% url sportdub.views.login %}">
<input type="text" name="email" value="" class="span8"/>
<input type="submit"></button>
</form>
function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
return pattern.test(emailAddress);
};
我想做的是在我的提交按钮上添加一个条件:
if( !isValidEmailAddress( emailaddress ) ) {
/* don't submit the form and raise an error */
} else {
/* submit the form */
}
你知道我怎样才能做到吗 您需要将
onsubmit
事件处理程序添加到表单中,如果未通过验证,则返回false
例如,根据您的代码:
<form method="post" action="{% url sportdub.views.login %}" onsubmit="return validateForm();">
<input type="text" id="formEmail" name="email" value="" class="span8"/>
<input type="submit"></button>
</form>
顺便说一句,我不建议使用内联JS属性,只需添加到所有元素并形成唯一的id属性,如果您使用jQuery,您可以在方法中执行所有验证。使用带有返回的onclick call-in-ur-submit按钮。。。你的代码应该是
<form method="post" action="{% url sportdub.views.login %}">
<input type="text" id="email" name="email" value="" class="span8"/>
<input type="submit" onclick = "return isValidEmailAddress();"></button>
</form>
function isValidEmailAddress() {
var emailAddress = $('#email').val();
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
return pattern.test(emailAddress);
};
函数isValidEmailAddress(){
var emailAddress=$('#email').val();
(a-a-z)今年:::\\\\美元,,,\\\\\\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(((([a-z][[[a-z]号)表示表示新的regEXEXEXP((((([a-z][除除除除除除除除除除除除除除除除除除除除上述上述上述上述:::::::::::::::::\\\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \,,,:::::::::::::::::::::::::::::::::::::(\x22)(((\x20|\x09)*(\x0d\x0a))(\x20|\x09)+-([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|࿈目前:4040404040404040404040404040\\\x01-\x01-\x01-\\x01-\x01-\x01-\x000\x000B\x0000000\0000000\000000000000000B\x0c\x0c\x0c\x0c\x0c\x0000C\x0d-\x0d-\X000\\x7f-\x7f-\X7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图试图|([a-z]|\d |[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d |-\u124; ~[u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\(a-z[a-z[[a-a-z][[[a-z][[a-z][[UUU00000-\UUU0000-\UUU0000-\UUU0000-\UUU0000-\UU00000-\U000000000000-\uFDF0-\UFFEFEF.[[[[[[[[UU00000000000000000-\uFDF0-\uFDF0-\uFDF0-\UFF-\UFF-\UFF-\UFFEFEFEF-\UFFEFEFEFEFEFEFEFEFEFEF基金基金][[[[[[[[[[[[[[[[[[[1-a-a-a-a-a-z][a-a-z][a-a-z][a-a-a-z]]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i);
返回模式.test(emailAddress);
};
内联:
<form method="post" action="{% url sportdub.views.login %}"
onsubmit="return isValidEmailAddress(this.email.value)">
<input type="text" name="email" value="" class="span8"/>
<input type="submit"></button>
</form>
jQuery版本:
$(function() {
$("#form1").on("submit",function(e) {
if (!isValidEmailAddress($("#email").val())) {
alert('Please enter a valid address');
return false; // cancel submit
}
return true; // allow submit
});
});
最后两个假设
<form id="form1" method="post" action="{% url sportdub.views.login %}">
<input type="text" name="email" id="email" value="" class="span8"/>
<input type="submit"></button>
</form>
请将验证添加到表单的onsubmit中,而不是单击按钮。此外,您没有使用按钮上的单击处理程序传递地址。这是一个坏主意-在文本字段中按enter键提交表单时不会触发验证。@mplungjan这对于OP来说并不明显。+可能他需要添加另一个v未来的验证。
$(function() {
$("#form1").on("submit",function(e) {
if (!isValidEmailAddress($("#email").val())) {
alert('Please enter a valid address');
return false; // cancel submit
}
return true; // allow submit
});
});
<form id="form1" method="post" action="{% url sportdub.views.login %}">
<input type="text" name="email" id="email" value="" class="span8"/>
<input type="submit"></button>
</form>