使用jQuery清除搜索框中的默认值

jam*_*848 1 jquery

似乎无法实现这个简单的功能!我想要的只是在单击输入框时清除默认搜索词.以下工作到一点,但清除输入的任何其他文本,我会认为重置search_form_text应该已经解决了这个问题:

search_form_text = $('#block-search-0 #edit-search-block-form-l').attr('value');

if (search_form_text == 'Enter search keywords here') {

        $('#block-search-0 #edit-search-block-form-l').click(function() {           
            $('#block-search-0 #edit-search-block-form-l').attr('value', '');
            search_form_text = '';
        });

    }
Run Code Online (Sandbox Code Playgroud)

嗯... :)

Nic*_*ver 7

尝试重新排列它:

$('#edit-search-block-form-l').click(function() {           
  if($(this).val() == 'Enter search keywords here') 
    $(this).val('');
});
Run Code Online (Sandbox Code Playgroud)

这只是阻止用户'Enter search keywords here'专门搜索,但这真的是一个问题吗?在此页面上查找顶部,键入"搜索",单击,然后再次单击该框...用户是否会注意到它?可能不是 :)

为什么它不起作用:
$('#block-search-0 #edit-search-block-form-l').attr('value', '');每次都会清除价值,你需要一个if,看看你是否真的要清楚:)


JKi*_*rtz 5

为什么不这样做:

$('#edit-search-block-form-1').focus(function(){
 if ($(this).val() == "Enter search keywords here"){
   $(this).val("");
 }
});
$('#edit-search-block-form-1').blur(function(){
 if ($(this).val() == ""){
   $(this).val("Enter search keywords here");
 }
});
Run Code Online (Sandbox Code Playgroud)

只要该框为"空白",它就会将描述保留在框中.