2012-02-21 32 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