Javascript 将数据发送到服务器ASP.Net MVC之前的客户端验证
我在ASP.Net中有一个视图。我在视图中添加了一些控件。我正在尝试在将数据发送到服务器之前进行客户端验证。如果一切正常,我想将其发送到服务器。Javascript 将数据发送到服务器ASP.Net MVC之前的客户端验证,javascript,asp.net-mvc-4,Javascript,Asp.net Mvc 4,我在ASP.Net中有一个视图。我在视图中添加了一些控件。我正在尝试在将数据发送到服务器之前进行客户端验证。如果一切正常,我想将其发送到服务器。 我的代码在这里: @using (Html.BeginForm("Index", "staff", FormMethod.Post)) { @Html.AntiForgeryToken() @Html.ValidationSummary(true)
我的代码在这里:
@using (Html.BeginForm("Index", "staff", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-group has-feedback">
<div> @Html.LabelFor(a => a.staff_name, "Staff Name")</div>
@Html.TextBoxFor(a => a.staff_name, new { @class = "form-control", placeholder = "", required = "required", autofocus = "autofocus"})
</div>
<div class="form-group has-feedback">
<div> @Html.LabelFor(a => a.user_name, "Username")</div>
@Html.TextBoxFor(a => a.user_name, new { @class = "form-control", placeholder = "", required = "required" })
</div>
<div class="form-group has-feedback">
<div> @Html.LabelFor(a => a.password, "Password")</div>
@Html.PasswordFor(a => a.password, new { @class = "form-control", placeholder = "", required = "required",id="password" })
</div>
<div class="form-group has-feedback">
<div> @Html.LabelFor(a => a.confirm_password, "Confirm Password")</div>
@Html.PasswordFor(a => a.confirm_password, new { @class = "form-control", placeholder = "", required = "required", id = "c_password" })
</div>
<div class="row">
<div class="col-xs-3 ">
<button type="submit" class="btn btn-primary btn-md pull-right" onsubmit="validateForm()">Submit</button>
</div><!-- /.col -->
</div>
}
</div>
</section>
<script type="text/javascript">
function validateForm()
{
var pass = document.getElementById("password").value;
var c_pass = document.getElementById("c_password").value;
if(pass==c_pass)
{
//submit
}
}
</script>
@使用(Html.BeginForm(“Index”,“staff”,FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@LabelFor(a=>a.staff_name,“staff name”)
@Html.TextBoxFor(a=>a.staff_name,新的{@class=“form control”,placeholder=“”,required=“required”,autofocus=“autofocus”})
@LabelFor(a=>a.user\u name,“用户名”)
@Html.TextBoxFor(a=>a.user_name,新的{@class=“form control”,placeholder=“”,required=“required”})
@LabelFor(a=>a.password,“password”)
@Html.PasswordFor(a=>a.password,新的{@class=“form control”,placeholder=“”,required=“required”,id=“password”})
@LabelFor(a=>a.confirm\u密码,“confirm password”)
@密码(a=>a.confirm_password,新的{@class=“form control”,placeholder=”“,required=“required”,id=“c_password”})
提交
}
函数validateForm()
{
var pass=document.getElementById(“密码”).value;
var c_pass=document.getElementById(“c_密码”).value;
如果(通过==c_通过)
{
//提交
}
}
我想检查“密码”和“确认密码”是否匹配。如果匹配,则只在服务器中发布。嘿,您只需要在web.config文件中启用客户端验证,无需为此编写任何外部代码。 您可以在web.config文件中添加以下代码行
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
希望它对你有用 您应该在
@Html.BeginForm
之前使用@{Html.EnableClientValidation(true);}
启用客户端验证,并使用jqueryvalidate()
使用此选项可激活客户端验证
<script type="text/javascript">
$(document).ready(function() {
$("#yourFormId").validate({
rules: {
ConfirmPassword: {
equalTo: "#Password"
},
},
messages: {
confirm_password: {
equalTo: "Please enter the same password as above"
},
}
});
});
</script>
$(文档).ready(函数(){
$(“#yourFormId”).validate({
规则:{
确认密码:{
equalTo:“#密码”
},
},
信息:{
确认密码:{
equalTo:“请输入与上述相同的密码”
},
}
});
});
web.config文件中已经有这些代码。我想要的是让Javascript验证输入。仅在验证后,将数据提交到服务器。您可以使用此选项完成我的回答工作吗?