【问题标题】:How to display watermark instead of value in textbox in ASP.Net MVC?如何在 ASP.Net MVC 的文本框中显示水印而不是值?
【发布时间】:2015-04-24 00:31:32
【问题描述】:

在我看来我有

<%= Html.TextBoxFor(m => m.Patient.Weight, new { title = "Weight" , style = "width: 3em", @class = "fieldRequired watermark" }) %> pounds</div>

当我运行应用程序时,我的文本框中出现了。当我从文本框中删除值时,它将显示水印。那么,我要怎么做呢?

【问题讨论】:

    标签: asp.net-mvc-4


    【解决方案1】:

    您要查找的术语是占位符。

    HTML 5 有一个选项可以指定占位符。

    <input name="name" type="text" placeholder="Your name...">
    @Html.TextBoxFor(m => m.Name, new { placeholder="Your Name..." })
    

    但是,并非所有浏览器都支持它。所以你要去 JavaScript 领域了。

    Here's a popular option on NuGet - jQuery.placeholder. 它将读取 HTML 5 属性并处理不支持它的浏览器的回退。

    只需将脚本添加到文档 onload 中即可。还有一些css类,check their docs for further info.

    $('input, textarea').placeholder();
    

    编辑: placeholder is supported in all major modern browsers

    【讨论】:

    • 感谢您的意见。我忘了提一件事。当我从Weight 文本框中删除值时,它将显示lbs 而不是0
    • 双重检查 jquery.placeholder 源。它似乎可以这样做,但尚未实际测试 - 在输入模糊时调用其内部 setPlaceholder。
    【解决方案2】:

    (我想将此作为评论包含在内,但系统不会让我在没有 50 分的情况下这样做...所以我将其作为“答案”放在这里,尽管我只关注术语。)

    实际上,OP 对术语“水印”的使用与 Microsoft 对该术语的使用一致,因为它与生成 HTML 输入标签的 MVC Html 帮助器对象呈现的文本框有关。然而,HTML5 确实为文本、搜索、url、电话、电子邮件和密码类型的输入标签引入了 placeholder 属性。这里的不同之处在于 HTML5 标准将您在 HTML 输入框中看到的“提示文本”称为“占位符”文本,而 Microsoft 将其称为“水印”。

    但微软可能专门使用了该术语,因为它有时将输入标签的水印称为在用户输入数据之前以该输入对象的样式指定的图像。因此,虽然 Microsoft 使用该术语来描述作为提示出现的 文本或图像,但 HTML5 占位符属性只能指定文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多