@using(Html.BeginForm("Login", "Account")){
<div id="login_name_box" class="input name_box">
@Html.EditorFor(model => model.UserName, new {type = "text", Class = "f_name", autocomplete = "off"})
<s class="f_name_t">账号</s>
<span>用户名错误</span>
</div>
<div id="login_password_box" class="input password_box">
@Html.EditorFor(model => model.Password, new {type = "password", Class = "f_password", autocomplete = "off"})
<s class="f_password_t">密码</s>
<span>密码错误</span>
</div>
<div id="login_identify_box" class="input identify_box">
@Html.Editor("code", new {ID="Vcode", type = "text", Class = "identify", autocomplete = "off"})
<s class="f_identify_t">验证码</s>
<img id="vimg" class="pic" src="/VerificationCode/Index" title="看不清请点击!" />
<span>验证码错误</span>
</div>
<input type="submit" class="btn" value="登 入" style="color: #fff !important;">
}
通过submit提交表单。然后在后台Controller中验证。并做处理。
public ActionResult Login(UserModel user, string code)
{
if (Session["ValidateCode"].ToString() != code)
{
string jsString = "var loginIdentifyBox = document.getElementById('login_identify_box');"
+"loginIdentifyBox.className += ' wrong'; return flase;";
return JavaScript(jsString);
}
..........
}
但是程序总是在执行返回的JavaScript后。继续提交表单。有什么方法可以在验证结束前不让它提交表单的??
3 个解决方案
#1
兄弟请问一下 知道 Html.BeginForm怎么自动填充吗? 我后台不想一个一个用request 接受
#2
在JS返回结果中 加return false试试
#3
.....看你代码 怎么是在提交后 在后台验证 验证你返回js是没用的 你直接在if里写 return; 就不会往下面执行了 然后在retrun;前面向面页输出你要弹出的提示 还有你可以通过异步进行较验验证码
#1
兄弟请问一下 知道 Html.BeginForm怎么自动填充吗? 我后台不想一个一个用request 接受
#2
在JS返回结果中 加return false试试
#3
.....看你代码 怎么是在提交后 在后台验证 验证你返回js是没用的 你直接在if里写 return; 就不会往下面执行了 然后在retrun;前面向面页输出你要弹出的提示 还有你可以通过异步进行较验验证码