Jquery Html.BeginForm使用onSubmit进行验证
我正在尝试提交我的表单,但是我添加了一些jquery以进行验证,这是有效的:Jquery Html.BeginForm使用onSubmit进行验证,jquery,.net,asp.net-mvc,Jquery,.net,Asp.net Mvc,我正在尝试提交我的表单,但是我添加了一些jquery以进行验证,这是有效的: $(function validateForm() { $("#newMonoReading").on('focusout', function () { var str = ""; var initialMonoReading = $('#InitialMonoReading').val(); var newMonoReading = $('#newM
$(function validateForm() {
$("#newMonoReading").on('focusout', function () {
var str = "";
var initialMonoReading = $('#InitialMonoReading').val();
var newMonoReading = $('#newMonoReading').val()
if (~~newMonoReading < ~~initialMonoReading) {
$('#MonoErrorMessage').text("New Mono Readings must be MORE than existing");
$('#MonoErrorMessage').show();
return false;
} else {
$('#MonoErrorMessage').hide();
}
});
});
$(函数validateForm(){
$(“#newMonoReading”).on('focusout',function(){
var str=“”;
var initialMonoReading=$('#initialMonoReading').val();
var newmonoreding=$('#newmonoreding').val()
如果(~~newMonoReading<~~initialMonoReading){
$(“#MonoErrorMessage”)。文本(“新的Mono读数必须大于现有读数”);
$('#MonoErrorMessage').show();
返回false;
}否则{
$('#MonoErrorMessage').hide();
}
});
});
但问题出在提交按钮上
<input type="submit" value="Submit" class="btn btn-primary">
如果有一个错误,提交按钮仍然工作,我需要它显示没有错误消息,然后发送,但我尝试使用表单的onsubmit,但它不工作,它仍然提交,即使值较小,错误消息正在显示
这是html.BeginForm。我想错误可能就在这里。我不是很确定
<div class="modal-body">
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm()" }))
{
@使用(Html.BeginForm(“Save”、“readingentry”、FormMethod.Post、new{enctype=“multipart/formdata”、onsubmit=“validateForm()”}))
{
任何想法请尝试以这种方式使用:
<div class="modal-body">
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data"}))
{
<input type="submit" value="Submit" onclick="return validateForm()" class="btn btn-primary">
@使用(Html.BeginForm(“保存”、“读取条目”、FormMethod.Post、新的{enctype=“multipart/formdata”}))
{
这是正确的摘要吗
提交时,您希望使用jQuery函数验证表单。
如果验证通过,则希望继续提交,否则希望取消提交
如果我的总结不正确,那么请进一步澄清你的问题
如果我对其进行了准确总结,您可以将jQuery函数更改为:
$(函数validateForm(事件){
event=event | | window.event | | event.src元素;
var initialMonoReading=$('#initialMonoReading').val();
var newmonoreding=$('#newmonoreding').val()
如果(~~newMonoReading<~~initialMonoReading){
$(“#MonoErrorMessage”)。文本(“新的Mono读数必须大于现有读数”);
$('#MonoErrorMessage').show();
event.preventDefault();
}
否则{
$('#MonoErrorMessage').hide();
}
});
创建标记时,请使用以下行:
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm(event)" }))
这对我有用
function validateForm() {
if ($('#newMonoReading').val() == 'bla bla bla') {
alert('bla bla bla');
return false;
}
else {
form1.submit();
}
@using (Html.BeginForm("action", "controller", FormMethod.Post, new { @id = "form1"}))
{
<input type="text" id="newMonoReading"><br>
<input type="submit" value="Submit" onclick = "return validateForm();" class="btn btn-primary">
}
函数validateForm(){
如果($('#newMonoReading').val()=='bla bla bla'){
警报(‘呜呜呜呜’);
返回false;
}
否则{
表格1.提交();
}
@使用(Html.BeginForm(“action”、“controller”、FormMethod.Post、new{@id=“form1”}))
{
}
这对我来说很有用
@using (Html.BeginForm("Tag", "Translations", FormMethod.Get, new { enctype = "multipart/form-data", onsubmit = "return validateTagInput()" }))
JQuery
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
function validateTagInput()
{
//do validation
if (x,y,z)
{
return true; //let page be submitted
}
else {
return false; //do not let submission go through
}
}
</script>
函数validateTagInput()
{
//验证
if(x,y,z)
{
返回true;//让页面被提交
}
否则{
return false;//不要让提交通过
}
}
您需要处理submit
事件,执行验证,然后在出现错误时取消验证,但您可以只使用[GreaterThan]
attribute我这样做了,但现在问题是,它在代码中给了我一个错误,说“用户代码未处理”但是我希望它保留在显示错误消息的表单上确定,这是不可能的..event.preventDefault();将永远不允许提交表单。请在event.preventDefault()之后发出警报(“Helloo,验证失败..!!”),并在$('.\MonoErrorMessage')之后发出另一个警报(“Helloo,验证成功..!!”)。隐藏();让我们知道,弹出了哪一个?@你为什么要用“~~”,我从来没有用过这个OK,当我在google chrome上试用时,它不起作用,但在ie上,它给了我错误。它不喜欢event.preventDefault();@m ali:请检查我编辑的代码。它起作用了。我已经验证过了。