2011-08-02 48 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>