Javascript 如何清除的文本编辑器

Javascript 如何清除的文本编辑器,javascript,jquery,razor,Javascript,Jquery,Razor,我在Razor页面上有这样一个元素: <td> <div class="col-md-12"> @Html.EditorFor(model => model.FreeTextName, new { htmlAttributes = new { @class = "form-control" } }) </div> </td> <script type="text/javascript">

我在Razor页面上有这样一个元素:

<td>
    <div class="col-md-12">
        @Html.EditorFor(model => model.FreeTextName, new { htmlAttributes = new { @class = "form-control" } })
    </div>
</td>
<script type="text/javascript">
    $('#FreeTextSwitchId').focusin(
        $('#FreeTextName').val("")
        )
</script>

@EditorFor(model=>model.FreeTextName,new{htmlAttributes=new{@class=“form control”}})
当页面第一次呈现时,页面中有提示文本,如“在此处输入要搜索的名称”

我希望当用户点击该字段时,该文本消失,因此我编写了如下小脚本:

<td>
    <div class="col-md-12">
        @Html.EditorFor(model => model.FreeTextName, new { htmlAttributes = new { @class = "form-control" } })
    </div>
</td>
<script type="text/javascript">
    $('#FreeTextSwitchId').focusin(
        $('#FreeTextName').val("")
        )
</script>

$('#FreeTextSwitchId')。焦点在(
$('#FreeTextName').val(“”)
)
但现在,我的页面呈现时提示测试已取消。我知道这是脚本在做的,因为如果我这样做:
$('FreeTextName').val(“test”)
,则会显示“test”而不是提示文本


我做错了什么?

你想做水印吗???您可以在HTML5中使用“占位符”属性


您应该在输入中添加占位符。下面是一个例子:


当用户输入时,文本将消失。

由于我使用MVC4,我实际上决定使用中的顶部答案:

使用您的
@Html.EditorFor()
,如下所示:

@Html.EditorFor(model => model.FreeTextName, new { @class = "form-control" })
<script type="text/javascript">

    $('.form-control').on('blur click', function(){ 
        $(this).val("");
    });

</script>
现在您已经在
@Html.EditorFor()
中给出了一个类,即
.form控件
。在脚本中使用类。这样做脚本:

@Html.EditorFor(model => model.FreeTextName, new { @class = "form-control" })
<script type="text/javascript">

    $('.form-control').on('blur click', function(){ 
        $(this).val("");
    });

</script>
它是一个html输入type=“textbox”属性,自动将默认文本作为默认提示添加到textbox中,以便用户能够理解此文本框中应该给出的内容。为此,您不需要使用任何脚本

希望这有帮助