如何为jQuery UI组合框定义选定的值?

时间:2011-11-14 19:36:17

标签: jquery jquery-ui

以下是代码 - http://jsfiddle.net/and7ey/k2J5v/8/。按下按钮后,应在此处选择默认值(value="0")。

我试过

$("#cbCity").val("0"); // cbCity - combobox

但它不起作用。看起来我还需要更改input元素的值。

此类更改应致电select

UPD。我也试过the following

$("#cbCity").html('<option value="0" selected>Any city</option>');
$("#cbCity").val("0");

它不起作用。

3 个答案:

答案 0 :(得分:9)

Here's your huckleberry.

完成了什么

  • 将您的代码从_create移至该页面。这样,用户无需在每次单击时等待数据。代码在页面加载时发生一次,就是这样。您可能希望将其移至DOM Ready。
  • 默认情况下隐藏了原始select,因此您看不到ui.combobox样式的刺耳变化。
  • 更改了ui.combobox项目的布局方式,以便“任意城市”位于顶部。
  • 当您点击 #showAnyCity时,自定义cb和原始cb都会重置。组合选择菜单也会关闭(如果它已打开)。

快乐编码

答案 1 :(得分:1)

好的,我认为有两件事情发生了:

  1. 您没有将click事件连接到正确的对象。您有$("#toggle").click(),但您确实需要$("#showAnyCity").click()
  2. 当您更改选择列表项并且您的AJAX呼叫返回时,您不会重新添加“任何城市”和“其他城市”选项。如果没有值为“0”的选项,则.val("0")将不会执行任何操作。您需要在AJAX调用中返回的结果中添加服务器端,或将它们添加到JavaScipt中的选择列表中。

答案 2 :(得分:1)

这就是你想要我想的!

现在我已经根据需要使用了jquery UI组合框。

您需要添加如下所述的功能

autocomplete : function(value) {
    this.element.val(value);
    this.input.val(value);
}

你需要像这样打电话

$('#cbCity').combobox('autocomplete', 'Any city'); 

我已经更新了这个新的检查:

http://jsfiddle.net/Fa9Hs/62/