Как установить текст-заполнитель в ASP.NET Текстовое поле MVC

#jquery #model-view-controller #viewdata

#jquery #модель-представление-контроллер #просмотр данных

Вопрос:

У меня на странице есть простая форма регистрации на рассылку новостей с 2 текстовыми полями (имя, адрес электронной почты) и кнопкой отправки. После успешной отправки я хочу отобразить сообщение об успешном завершении, используя ViewData [«Сообщение»]. До того, как обернуть форму в оператор if, я мог бы использовать текстовые значения по умолчанию и события jQuery для нее, но после переноса это не работает. Вот код;

 @if (ViewData["Message"] != null)
{
    <span class="visitWriteup">Thank You for Signing Up for Our Newsletter!</span>
}
else
{

    using (Html.BeginForm("MailingList", "Home", FormMethod.Post, new { @class = "MailingListForm" }))
    {
        <span class="visitWriteup">
            Sign Up for Our Newsletter:
        </span>
        <span class="SignUpText">
            @Html.TextBoxFor(m => m.Name, new { @Value = "Name:" })

        </span>
        <span class="SignUpText">
            @Html.TextBoxFor(m => m.Email, new { @Value = "E-Mail:" })

        </span>
        <span class="errorText">@Html.ValidationMessageFor(m => m.Name)</span>
        <span class="errorText">@Html.ValidationMessageFor(m => m.Email)</span>
        <input type="submit" id="btnSubmit" class="btnSubmit" value="Subscribe" />
    }
}
  

Форма не отображается без значений «Name:» и «E-Mail:» в текстовых полях, и мои функции jQuery также работают некорректно.

 $(function () {
   $('#Name').click(function () {
       if (this.value == 'Name:' || this.value == '') {
        $(this).val('');
       }
    });
   $('#Name').blur(function () {
       if (this.value == '') {
          $(this).val('Name:');
       }
    });
});
  

будем признательны за любую помощь.

Комментарии:

1. Вы могли бы использовать placeholder="Name" атрибут в текстовом поле и удалить всю эту логику.

Ответ №1:

Кажется, вы неправильно устанавливаете placeholder текст в полях ввода. Пожалуйста, сделайте следующее:

 <span class="SignUpText">
    @Html.TextBoxFor(m => m.Name, new { placeholder="Name" })
</span>
<span class="SignUpText">
    @Html.TextBoxFor(m => m.Email, new { placeholder="E-mail" })
</span>
  

Теперь вам не нужно ничего делать с jQuery .