2017-07-26 43 views
1

我的网站上有以下表单。这很简单,一个搜索输入字段和一个提交按钮:如果输入字段值存在,如何自动提交表单?

​​

正如你可以看到,在搜索领域(id=query),我有一个PHP有时插入值到他的领域。

我想要做的是以下几点:

  • 如果$searchQuery不存在(或者换句话说,如果搜索 字段的取值id=query是空的,允许用户对搜索按钮 手动点击。
  • 如果$searchQuery存在,自动提交表单(模拟在 点击搜索按钮。

任何解决方案将帮助, JavaScript,jQuery或PHP。我只需要弄清楚如何在PHP变量$searchQuery存在时自动提交此表单。

+1

可能是这篇文章会帮助你:https://stackoverflow.com/questions/12376173/auto-submit-form-using-javascript –

+0

它处理不同的事情,延迟开始。不完全适用。但是,谢谢。 – jjj

+0

如果查询值在开始时填充,那么表单会自动提交?因为没有设置表单动作,它会重定向到同一页面,提防无限重定向 –

回答

3

我相信你是在初始页面加载专门询问。使用jQuery:

$(document).ready(function() { 
    if ($('#query').val() !== '') { 
     $('#search-form').submit(); 
    } 
}); 
+0

是的,这工作像一个魅力...非常感谢你,先生,你刚刚救了我的一天 – jjj

2
<script type="javascript/text"> 
var query = document.getElementById('query'); 
if(query.value != ''){ 
    //do your submit 
} 
function yoursubmitfunctionname(){ 
    //do your submit 
} 
query.addEventListener('change',yoursubmitfunctionname); 
</script> 
1

这段代码提交表单,如果字符长度最少使用jQuery fullfiled:

$(document).ready(function() 
{ 
    var minimum_character = 7; 

    $('#query').on('propertychange input', function (e) 
    { 
     var valueChanged = false; 

     if(e.type=='propertychange') 
     { 
      valueChanged = e.originalEvent.propertyName=='value'; 
     } 
     else 
     { 
      valueChanged = true; 
     } 

     if(valueChanged) 
     { 
      str_length = $('#query').val().length; 
      if(str_length == minimum_character) 
      { 
       $("#search-form").submit(); 
      } 
     } 
    }); 
}); 
+0

只有当我开始在字段中键入并且达到7个字符或指定了任何长度时,这才起作用。但它$ searchQuery是通过PHP自动预填充的,它没有做任何事情......看起来这与键入有关,而不是监视值。 – jjj

3

您需要查看是否填充了值并提交表单(如果是)。

jQuery的版本

$(function() { 
    if ($('#query').val() !== '') { 
     $('#search-form').submit(); 
    } 
}); 

小提琴:https://jsfiddle.net/fe9m8pk3/

Javascript版本

function ready(fn) { 
    if (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading') { 
     fn(); 
    } else { 
     document.addEventListener('DOMContentLoaded', fn); 
    } 
} 

ready(function() { 
    if (document.getElementById('query').value != '') { 
     document.getElementById('search-form').submit(); 
    } 
}); 

小提琴:https://jsfiddle.net/qeo25yu1/

+0

优秀,这是最后的解决方案,我刚刚接受了较短的版本 – jjj

+0

Yeahhhhhh我没有看到那里的ID - 我通常首先列出ID,所以我的大脑刚刚选择了更复杂的选择器:P –

相关问题