【发布时间】:2014-10-01 12:03:31
【问题描述】:
我的 cshtml 页面中有第二个代码:
@using (Html.BeginForm())
{
<div id="login">
@Html.ValidationSummary(true, SignIn_cshtml.SignInWasUnsuccessful)
<p>Login to menu</p>
<div>
@Html.TextBoxFor(m => m.UserName, new { id="input_name", placeholder="User Name" })
@Html.ValidationMessageFor(m => m.UserName)
</div>
<div>
@Html.PasswordFor(m => m.Password, new { id="input_pwd", placeholder="Password" })
@Html.ValidationMessageFor(m => m.Password)
</div>
<div>
@Html.CheckBoxFor(m => m.Enable)
@Html.LabelFor(m => m.Enable)
</div>
<div>
<input type="image" src="~/Content/images/LoginButton.png" value="@SignIn_cshtml.SignIn"/>
</div>
</div>
}
@section scripts
{
<script type="text/javascript">
$(function () {
$("#UserName").focus();
});
$(document).ready(function () {
function add() {
if ($(this).val() === '') {
$(this).val($(this).attr('placeholder')).addClass('placeholder');
}
}
function remove() {
if ($(this).val() === $(this).attr('placeholder')) {
$(this).val('').removeClass('placeholder');
}
}
if (!('placeholder' in $('<input>')[0])) {
$('input[placeholder], textarea[placeholder]').blur(add).focus(remove).each(add);
$('form').submit(function () {
$(this).find('input[placeholder], textarea[placeholder]').each(remove);
});
}
});
</script>
}
一切正常。如果用户名或密码不正确,我会在他们的文本框下收到消息。
问题是现在我需要改变它。而不是用户名或密码的验证消息,我需要将它们的文本颜色更改为红色(直到我猜新关注文本框)。验证摘要也应该移到底部,在登录 div 之外(在它自己的),并且应该以某种样式出现。听起来并不难(使用 javascript),但问题是我无法更改验证。所有验证消息都应该存在。
据我所知,我应该以某种方式运行 javascript,它将显示带有验证摘要的 div,直到新的焦点,应该将文本框值从黑色重新着色为红色,但我该如何运行这个脚本?我的意思是,在用户名或密码发生错误的那一刻?
P.S 对不起,我的英语不好。
【问题讨论】:
标签: javascript c# jquery asp.net-mvc validation