3

在我看来我有

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

当我运行我在此处输入图像描述在我的文本框中得到的应用程序时。当我从文本框中删除值时,它将显示水印。那么,我该怎么做在此处输入图像描述呢?

4

2 回答 2

8

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

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

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

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

这是 NuGet 上的一个流行选项 - jQuery.placeholder。 它将读取 HTML 5 属性并处理不支持它的浏览器的回退。

只需在文档 onload 中添加脚本即可。还有一些 css 类,请查看他们的文档以获取更多信息。

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

编辑: 所有主要的现代浏览器都支持占位符

于 2013-08-02T17:04:43.053 回答
0

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

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

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

于 2014-01-18T12:24:14.177 回答