Альтернативный метод хранения местозаполнителя HTML
У меня есть форма регистрации в синтаксисе Razor, как показано ниже
<div id="RegisterDiv" class="is-hidden">
@using (Html.BeginForm("Register", "User", FormMethod.Post, new { id = "frmRegister" }))
{
<label>Email</label>
@Html.TextBoxFor(lm => lm.Email, new { id = "Email", name = "Email", value = "", placeholder = "Enter your email" })
<small id="Emailerror" class="error is-hidden">A valid email address is required</small>
<label>Password</label>
@Html.PasswordFor(lm => lm.Password, new { id = "Password", name = "Password", value = "", maxlength = "20" })
<small id="Passworderror" class="error is-hidden"></small>
@Html.PasswordFor(lm => lm.VerifyPassword, new { id = "VerifyPassword", name = "VerifyPassword", value = "", maxlength = "20" })
<small id="VerifyPassworderror" class="error is-hidden"></small>
<small class="help-block">* must be 6-20 characters (letters, numbers and hyphens are accepted but not spaces)</small>
<hr>
<div class="form-row">
<div class="six columns">
@Html.TextBoxFor(lm => lm.FirstName, new { id = "FirstName", name = "FirstName", value = "", placeholder = "First Name" })
<small id="FirstNameerror" class="error is-hidden">First name is required</small>
</div>
<div class="six columns">
@Html.TextBoxFor(lm => lm.LastName, new { id = "LastName", name = "LastName", value = "", placeholder = "Last Name" })
<small id="LastNameerror" class="error is-hidden">Last name is required</small>
</div>
</div>
<div class="form-row">
<div class="six columns">
@Html.DropDownListFor(dr => dr.CountryId, new SelectList(Model.CountryList, "countryid", "name"), "Country of Residence", new { id = "CountryId", name = "CountryId" })
<small id="CountryIderror" class="error is-hidden">Country is required</small>
</div>
</div>
<div class="form-action">
<a id="Submit" class="form-submit" href="javaScript:void(0);">Register</a>
<a id="Cancel" class="form-cancel" href="javaScript:void(0);">Cancel</a>
</div>
}
</div>
И отправить код
$("#frmRegister").submit();
Но когда приложение запускается в IE-8, значения элементов id = "Password" и id = "VerifyPassword" не отправляются на сервер. При удалении атрибута placeholder он работает нормально, то есть данные отправляются на сервер. Есть ли решение этой проблемы без удаления атрибута заполнителя? Если нет, есть ли альтернативный способ сохранить заполнитель, кроме как placeholder = "Verify Password"
?
1 ответ
placeholder
Атрибут - это новый атрибут в html5, означающий, что браузеры до html5 не будут работать с ними. Вы можете попробовать Modernizr, он предназначен для того, чтобы элементы / атрибуты только для HTML5 работали в старых браузерах. Конечно, вы можете сделать свою собственную функцию javascript для заполнителей, это не очень сложно. Пример jsFiddle