2011-08-02 79 views
0

我有以下形式從http://regain.sourceforge.net/如何操作Get查詢?

<form name="search" action="search.jsp" method="get"> 
     <p class="searchinput"> 
      <b>Suchen nach: </b> 
      <input name="query" size="30"/> 
      <select name="order" size="1" ><option selected value="relevance_desc">Relevanz</option><option value="last-modified_asc">Dokumentendatum aufsteigend</option><option value="last-modified_desc">Dokumentendatum absteigend</option</select> 

      <input type="submit" value="Suchen"/> 
     </p> 
     </form> 

搜索表單工作正常。該URL看起來像下面這樣: http://localhost:8080/regain/search.jsp?query=queryfieldvalue&order=relevance_desc

現在我想添加一個複選框來操縱輸入字段查詢的值。 如果複選框被選中,則查詢值應該像文件名: 「queryfieldvalue

http://localhost:8080/regain/search.jsp?query=filename%3A%22queryfieldvalue%22 &爲了= relevance_desc

什麼是做到這一點的最好方法是什麼? JavaScript的?你對我有一個簡短的例子,因爲我對JavaScript很陌生。

非常感謝。

+0

雖然它應該在JavaScript中微不足道,爲什麼不能在服務器上做同樣的事情? – amal

回答

1

一個用純JavaScript(不包括jQuery的)方法是

<script type="text/javascript"> 
function handler() 
{ 
    var check = document.getElementById('check'); 
    var query = document.getElementsByName('query')[0]; 
    if(check.checked) 
    { 
     query.value = "filename:\"" + query.value + "\""; 
    } 
    else 
    { 
     query.value = query.value.replace(/^filename:"/, "").replace(/"$/, ""); 
    } 
} 
</script> 

<form> 
    <input type="text" name="query" /> 
    <input type="checkbox" id="check" onclick="handler()" />box 
</form> 

應該更多或更少的工作,這將是更安全,如果你給查詢輸入字段的ID然後引用它的ID,而不是名稱

+0

非常感謝。 – Stefan

0

,如果你使用jQuery,這樣的事情應該做的:

<input type="checkbox" id="chkQuery">Pass queryfield</input> 

<script> 
$(document).ready(function{} 
    $("#chkQuery").click(function(){ 
     if ($(this).is(':checked')) 
      $("input[name='query']").val("filename:queryfieldvalue"); 
     else 
      $("input[name='query']").val("queryfieldvalue"); 
    }); 
}); 
</script>