获取单选按钮的值,然后继续自动提示

时间:2010-12-16 06:49:19

标签: jquery

您好   我在我的网站上开发了一个autosuggest,它工作正常,现在问题是用户选择一个单选按钮,autosuggest应该转到相应的建议

$().ready(function() {

$("#q").autocomplete('?h=sugg&a='+$("#rad").val(), {
    width:350,
    max: 10,
    highlight: false,
    scroll: true,
    scrollHeight: 300,
    selectFirst: false,
    formatResult: function(data, value) {
        return value.split(".")[0];
    }

});
<input name="q"   id="q" autocomplete="off"  />
      <input type="radio" name="rad" value="radio" id="rad_0" checked="checked"  />
      Radio</label>
    <br />
    <label>
      <input type="radio" name="rad" value="radio1" id="rad_1" />
      Radio</label>

问题是它总是选择默认值,如果我选择另一个请不要改变,请告诉我该怎么做...

1 个答案:

答案 0 :(得分:0)

关于如何初始化自动完成插件存在一些问题。

$("#q").autocomplete('?h=sugg&a='+$("#rad").val(), ...
  1. 您正在为源网址使用静态值。单选按钮更改时,URL将不会更新。这看起来像:?h = sugg&amp; a = radio
  2. 单选按钮选择器正在查找ID为“rad”的对象。您没有具有此ID的元素,即使您这样做,也会映射到单个单选按钮。
  3. 您可以通过以下方式找到所选的无线电值:

    $("input[name=rad]:checked").val();
    

    这将找到名为“rad”的所有输入元素(您有两个)。它将使用:checked伪选择器来查找选中的单选按钮。

    现在,即使您更新初始化以使用新选择器,您仍然只能使用第一个单选按钮。两个建议:

    1. 当单选按钮更改时,请更新自动完成源。

      $(“input [name = rad]”)。click(function(){     $(“#q”)。autocomplete(“option”,“source”,“?h = sugg&amp; a =”+ this.value); });

    2. 请改用回调源。在这里,您可以在初始化时提供一个函数,该函数可用于根据当前选项值(或您需要的任何标准)进行不同的查询。有关如何使用“来源”的更多示例可用here

    3. 自动完成插件的完整文档也是available here