2012-02-21 87 views
0

我在我的web應用程序中使用Jquery自動完成組合框實用工具(非常好的工具),但我想阻止表單提交,如果與自動完成組合框關聯的字段爲空。因此,現在,如果沒有通過組合框選擇任何東西,我只是不顯示提交按鈕,但如果已經選擇了某個東西然後擦除......我不在何時(或在哪裏)我已經必須隱藏我的提交按鈕。防止提交,如果jQuery的自動完成組合框字段爲空

任何想法?

在此先感謝。這裏

編輯是我的代碼:

/* HTML */ 
//The select filled with data for the combobox 
<select id="combobox"> 
     <option value=""></option> 
     <c:forEach var="item" items="${itemList}"> 
      <option value="${item.value}">${item.key}</option> 
     </c:forEach>   
</select> 

//The form with the button 
<form name="updateForm" action="update.htm" method="post"> 
    <input type="hidden" id="id1" name="cID" /> 
    <input type="hidden" id="id2" name="rID" /> 
    <input type="submit" id='btn_update' value="Update" /> 
</form> 

/* JAVASCRIPT */ 
//combobox widget init (...) 
$("#btn_update").hide(); 
$("#combobox").combobox({ 
    selected:selectedFunc 
}); 
+0

你可以添加你的代碼:) – Awea 2012-02-21 15:42:57

+0

我已經編輯添加我的代碼。 – Tony 2012-02-21 15:55:15

回答

0

如果我沒理解錯了,你正在尋找這樣的事情,

HTML

<select id="sel"> 
    <option>-select-</option> 
    <option value="example1">example1</option> 
    <option value="example2">example2</option> 
</select> 
<input type="submit" id="but" style="display:none;"/> 

腳本

$("#sel").change(function() { 

if(this.selectedIndex == 0) 
    $("#but").hide(); 
else 
    $("#but").show(); 
});​ 

這裏是jsFiddle link


編輯:

無法準確地解決你的問題,但也許這個例子會告訴你的方式

可以使用更改事件以控制自動完成,所以如果它爲空,隱藏提交按鈕,如果不爲空顯示提交按鈕。

here is an example in jsFiddle

但壞消息jquery-ui-autocomplete document

改變事件

時觸發該領域模糊,如果該值已經改變; ui.item引用選定的項目。

含義是不會工作onkeypress,它必須被模糊觸發。如果您可以將keypress事件添加到jquery-ui-autocomplate中,它將完全正常工作。

+0

是的,這是正確的,但使用Jquery自動完成組合框! – Tony 2012-02-21 15:45:04

+1

@Tony我明白了,再看看我更新的答案,那可能對你有幫助。 – ocanal 2012-02-21 17:37:17

+0

我已經設置了一個像你的例子一樣的控件,但是,這實際上是我的問題,只有當字段模糊時觸發change事件。如果我有時間的話,我會在自動完成方法中添加按鍵事件。 – Tony 2012-02-22 11:15:26