2012-08-13 118 views

回答

1

檢查這個代碼
如果條件
DEMO

   this.selected = valid = true; 
          return false; 
         } 
        }); 
        if (!valid) { 
         // remove invalid value, as it didn't match anything 
         $(this).val(""); 
         select.val(""); 
         input.data("autocomplete").term = ""; 
         return false; 
        } 
       }else{ 
        alert(ui.item.value);} 
      } 
     }) 
+0

不錯的解決方案,我看到你一直用shih-en chou的方式:) – mentorgashi 2012-08-13 10:55:23

+0

非常感謝這個指點:) – mentorgashi 2012-08-13 11:05:35

1

我添加

focus:function(event, ui){ 
    alert(ui.item.value); 
}, 

在你的代碼,這裏是例子http://jsfiddle.net/sechou/SuNMV/4/

重點:前重點是移動到項目(不選擇),ui.item指的是關注項目。焦點的默認操作是將文本字段的值替換爲焦點項目的值,但前提是焦點事件是由鍵盤交互觸發的。取消此事件可防止更新該值,但不會阻止菜單項聚焦。

1

我還需要更多的事件處理能夠處理觸發change事件,因爲「選擇」特別else部分不處理當點擊輸入鍵或失去對輸入的焦點時(點擊標籤或點擊鼠標)。

因此,使用最新版本jQuery的自動完成劇本,我創建了以下解決方案:DEMO

  • 輸入:選擇第一個項目,如果菜單可見
  • 聚焦丟失:部分匹配觸發器未找到消息並清除條目(jQuery UI),但完全鍵入的答案「選擇」該值(不區分大小寫)

如何更改方法可以點移動平均濾波器:

$("#combobox").combobox({ 
    selected: function (event, ui) { 
     $("#output").text("Selected Event >>> " + $("#combobox").val()); 
    } 
}) 
.change(function (e) { 
    $("#output").text("Change Event >>> " + $("#combobox").val()); 
}); 

希望這有助於其他人誰需要額外的變化事件的功能,「選擇」爲空白,以彌補葉開放。

0

最簡單的方法:

$("select").combobox({ 
    select: function (event, ui) { 
    $(this).trigger("change"); 
    } 
});