如何在ASP.NET MVC TextBox中设置占位符文本

问题描述 投票:0回答:1

我的页面上有一个简单的简报注册表单,其中包含2个文本框(名称,电子邮件)和一个提交按钮。成功提交后,我想使用ViewData [“Message”]显示成功声明。在将表单包装在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" />
    }
}

表单不显示没有“名称:”和“电子邮件:”文本框中的值和我的jQuery函数也无法正常工作。

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

任何帮助,将不胜感激。

jquery model-view-controller viewdata
1个回答
2
投票

它似乎你在输入字段中以错误的方式设置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做任何事情。

© www.soinside.com 2019 - 2024. All rights reserved.