如果搜索查询不超过x个字符,则发出警报消息

时间:2017-06-26 08:17:07

标签: javascript jquery

首先,感谢您花时间看我的问题。真。这是我的问题。我为我正在制作的网站制作了一个fancybox搜索页面。在fancybox中获取搜索结果一切正常。

但是,如果访问者只需点击search,它就会返回网站上的所有项目。我想要的是使表格如此,访问者has在搜索进行搜索之前至少输入3个字符。如果访问者未输入3个或更多字符,fancybox将提示please enter at least 3 or more characters

我查看了stackoverflow并找到了这段代码:

$( document ).ready(function() {
        input_value = $.trim($('#searchkey').val());
        if(input_value == ''){
           alert('Enter some value');
           return false;  //Does not submit the form 
        }else{
          //perform your code if it should not be empty. 
       }
    });

所以我将代码放在正确的位置,如下所示:

$( document ).ready(function() {
input_value = $.trim($('#str').val());
    if(input_value == ''){
       alert('Enter some value');
       return false;  //Does not submit the form 
    } else {
    $(function() {
      $('#search').on('submit', function(e) {
        e.preventDefault();
        jQuery.fancybox({
          width: 600,
          height: 600,
          openEffect: 'fade',
          closeEffect: 'fade',       
            href: 'search-post-results.php',
            type: "ajax",
              ajax: {
                type: "POST",
                data: {
                  value: $('#str').val()
                }
              }
            });
          });
        });
    }
});

我没有收到任何语法错误,但如果我重新加载页面,它会给我正确的警告。但如果输入了no个字符,那就是那个。所以我改变了这一行:

if(input_value == ''){

到:

if(input_value == '2'){

确定我应该设置一个值。但这没有任何作用。有没有人有类似的脚本/片段做同样的事情?或者知道为什么这不起作用?

这是HTML(没什么特别的):

<form id="search">
  <table>
    <tr>
      <td>
        <input type="text" name="s" id="str" placeholder="Search...">
      </td>
      <td>
        <button class="btn form-button btn-default">
          <i class="fa fa-search"></i>
        </button>
      </td>
    </tr>
  </table>
</form>

再次见到你的时间。

2 个答案:

答案 0 :(得分:3)

使用length属性。

if( input_value.length < 3 ){
   // error message if characters are less than 3
} else {
   // continue the search
}

答案 1 :(得分:1)

试试这个, 另请更改验证位置,因为如果您重新加载,则会始终显示警报。因此,您可以在提交操作后进行验证。

 $(function() {
      $('#search').on('submit', function(e) {
        e.preventDefault();
        if(input_value.length < 3 ){
          // Show your alert message.
        }else{
         // Here you start Ajax Request.
        }

    });

    });