问题自定义<input type =“search”... =“”/> Jquery Mobile

时间:2011-08-12 12:52:02

标签: jquery jquery-mobile

我想在ID为“search”的字段中显示“搜索”消息,并在用户点击时消失。这是我的代码。它不起作用。

 <script>
 $('#acceuil').live('pagecreate',function(event){
 $('#search').blur(function(){
    if ($('#search').val()=='')
    $('#search').val("search");
});

$('#search').focus(function(){
    if (('#search').val()=='search')
    $('#search').val("");
});
});
</script>



<div data-role="page" id ="acceuil" >
<div data-role="header" data-theme="a" ><h3>TEST</h3></div>
<div data-role="content">
   <div data-role="container" >
    <img src="images/olampromo.gif">
</div>
<div data-role="container">
    <label for="search">Cherchez votre coupon :</label>
    <input type="search" id="search" value="search">        
</div>

</div>
<div data-role="footer" data-theme="a" ><h3>footer</h3></div>

3 个答案:

答案 0 :(得分:8)

为什么不使用HTML5原生占位符属性?不需要JS。

<input type="text" id="searchBox" placeholder="search..." />

直播示例:

答案 1 :(得分:2)

你错过了JS中的$。尝试更改行:

if (('#search').val()=='search')

为:

if ($('#search').val()=='search')

您可以使用this进一步改进它。 this将引用触发事件的对象(即搜索元素)。所以,试着改为:

if ($(this).val()=='search')

同样的逻辑适用于模糊和焦点处理程序。

这是展示解决方案的jsFiddle

答案 2 :(得分:1)

试试这个:

        $("#search").focus(function(srcc) {
        var p_val = "Search";
        if ($(this).val() == p_val) {
            $(this).val("");
        }
    });

    $("#search").blur(function() {
        var p_val = "Search";
        if ($(this).val() == "") {
            $(this).val(p_val);
        }
    });

    $("#search").blur();