Javascript 搜索查询不超过x个字符时的警报消息

Javascript 搜索查询不超过x个字符时的警报消息,javascript,jquery,Javascript,Jquery,首先,感谢您抽出时间来看看我的问题。真正地这是我的问题。我正在为我正在制作的网站制作一个fancybox搜索页面。在fancybox中获得搜索结果都很好 但是,如果访问者只需单击搜索,它就会返回站点上的所有项目。我要做的是使表单在搜索之前,访问者至少要输入3个字符。如果访问者未输入3个或更多字符,fancybox将发出警告,提示请至少输入3个或更多字符 我环顾了stackoverflow,发现了以下代码: $( document ).ready(function() { inpu

首先,感谢您抽出时间来看看我的问题。真正地这是我的问题。我正在为我正在制作的网站制作一个fancybox搜索页面。在fancybox中获得搜索结果都很好

但是,如果访问者只需单击
搜索
,它就会返回站点上的所有项目。我要做的是使表单在搜索之前,访问者
至少要输入3个字符。如果访问者未输入3个或更多字符,fancybox将发出警告,提示
请至少输入3个或更多字符

我环顾了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()
                }
              }
            });
          });
        });
    }
});
我没有得到任何语法错误,但如果我重新加载页面,它会给我正确的警报。但是,如果没有输入
字符,则会出现这种情况。所以我改变了这一行:

if(输入值=“”){

致:

if(输入值='2'){

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

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



再次感谢您的时间。

使用
length
属性

if( input_value.length < 3 ){
   // error message if characters are less than 3
} else {
   // continue the search
}
if(输入值长度<3){
//如果字符少于3,则显示错误消息
}否则{
//继续搜索
}

使用
length
属性

if( input_value.length < 3 ){
   // error message if characters are less than 3
} else {
   // continue the search
}
if(输入值长度<3){
//如果字符少于3,则显示错误消息
}否则{
//继续搜索
}
试试这个, 另外,请更改验证位置,因为如果重新加载,则始终会显示警报。这样,您可以在提交操作后进行验证

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

    });

    });
$(函数(){
$('#search')。在('submit',函数(e)上{
e、 预防默认值();
if(输入值长度<3){
//显示您的警报消息。
}否则{
//这里开始Ajax请求。
}
});
});
试试这个, 另外,请更改验证位置,因为如果重新加载,则始终会显示警报。这样,您可以在提交操作后进行验证

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

    });

    });
$(函数(){
$('#search')。在('submit',函数(e)上{
e、 预防默认值();
if(输入值长度<3){
//显示您的警报消息。
}否则{
//这里开始Ajax请求。
}
});
});

如果需要字符数,请尝试将
input_value.length
更改为
if(input_value='2')
if(input_value.length<3)
此时您正在比较输入的值/内容,而不是其值的数量/长度。Hello@Jay oh,请尝试我的代码,它肯定会对您有所帮助。如果您需要字符数,请尝试
input\u value.length
if(input\u value='2')
更改为
if(input\u value.length<3)
目前,您正在比较输入的值/内容,而不是其值的数量/长度。你好@Jay哦,请尝试我的代码它肯定会对您有所帮助。成功了。我不得不修改了我自己的代码。但这让我走上了正确的道路!谢谢!成功了。我不得不修改了我自己的代码。但这让我走上了正确的道路!谢谢!是的h、 这就是我需要改变的代码,我自己发现的。仍然感谢你的回答。是的,这就是我需要改变的代码,我自己发现的。仍然感谢你的回答。