2017-07-26 71 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 –

相關問題