我有我的CSHTML頁第二碼:更改MVC驗證使用
@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對不起,我的英語不好。
有趣的想法......但關於.input驗證錯誤。我不能改變它,因爲它使用的另一個頁面。我自己的.input-validation-error被Site.css覆蓋。有沒有辦法首先從佈局頁面採取樣式?此外,關於div可見性的問題仍然存在。 – 2014-10-01 13:27:50
@OlegsJasjko檢查我的答案,以添加您自己的類來覆蓋輸入驗證錯誤樣式 – 2014-10-01 20:54:53