WordPress搜索 - 如果没有输入搜索字符串,则不执行任何操作

时间:2014-02-12 14:25:30

标签: jquery wordpress

我有以下代码片段:

<form id="searchform" method="get" action="<?php bloginfo('siteurl')?>/">
<input type="text" name="s" id="s" class="textbox" placeholder="Search" />
<input type="submit" id="t" value="&gt;" class="searchsubmit">
</form>

不幸的是,如果没有输入搜索字符串,并且按下了提交按钮或点击了Enter,则会将您带到不需要的页面。

对我来说这是博客页面,因为我可以看到正文中的“博客”课程。

如何在输入字符串之前阻止搜索触发?

感谢您的时间和帮助。

3 个答案:

答案 0 :(得分:2)

那是你在找什么?

$('#t').click(function(){
  if($('#s').val() == ''){
    return false;
  }
});

答案 1 :(得分:1)

一个 - 您可以在输入标记

中使用HTML5 required属性
<input type="text" name="s" id="s" class="textbox" placeholder="Search" required/>

虽然并非所有浏览器都完全支持它,您可以在此处查看 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Browser_compatibility

两个 - 将提交处理程序绑定到您的表单并在提交之前进行检查 - 这样它处理按钮单击并在表单中输入按键

$('#searchform').submit(function(){
    if($('#s').val() == ''){
        return false;
    }
});

$('#searchform').submit(function(e){
    if($('#s').val() == ''){
        e.preventDefault();
    }
});

FIDDLE

答案 2 :(得分:0)

您可以使用jQuery阻止表单,因此如果为空,它就不会提交,如Pavlo建议的那样,通过在地址栏中键入?s=仍然可以解决这个问题...

或者将其放在functions.php上。它会将空搜索提交重定向到主页:

function search_redirect($query) {
   if ( !is_admin() && $query->is_main_query() ) 
      if ($query->is_search) {
          wp_redirect( home_url() ); exit;
      }
   }
}
add_action('pre_get_posts','search_redirect');