jQuery live()+ focus() - ui自动完成

时间:2011-11-25 16:17:27

标签: jquery jquery-ui-autocomplete

只需要一点帮助jquery - 我试图改变搜索选项“w”通过json传递给php:

<script type="text/javascript">
        $(function(){
          $('.auto').live('keydown.autocomplete', function(){
             $('.auto').focus(function() {
                var col = $(".auto").closest("td").attr("col");
                var srs = "search_tip.php?w="+col;
            });

            $(this).autocomplete({
                source: srs,
                dataType: "json",
                minLength: 2
            });
          });
        });
    </script>

基本上取决于父级的属性“col” - 脚本搜索搜索数据库中的不同表。这是HTML位:

<tr primary_key="1">
<td col="catalogue" class="editableCell" style="width: 80px; "><input class="editableInput auto" type="text"></td>
<td col="artist" class="editableCell" style="width: 100px; "><input class="editableInput auto" type="text"></td>
<td col="title" class="editableCell" style="width: 206px; "><input class="editableInput auto" type="text"></td>
</tr>

没有$('.auto').focus(function() {}); - js只选择第一个实例(在本例中为“catalog”),但我需要它来为每个.auto实例选择,更改表名。 但是使用focus() - 它根本不起作用=)

让我知道这是否足够清楚,或者您需要更多信息

谢谢!

2 个答案:

答案 0 :(得分:0)

我会尝试以下方法:

  <script type="text/javascript">
  $(function(){
    $('.auto').live('keydown.autocomplete', function(){
      var col = $(this).closest("td").attr("col");
      var srs = "search_tip.php?w=" + col;
      $(this).autocomplete({
          source: srs,
          dataType: "json",
          minLength: 2
      });
    });
  });

答案 1 :(得分:0)

为什么不将值保存在隐藏输入中,然后在自动完成中使用它。 像这样:

<script type="text/javascript">
            $(function(){
              $('.auto').live('keydown.autocomplete', function(){
                 $('.auto').focus(function() {
                    var col = $(".auto").closest("td").attr("col");
                    $('#hidden_col').val(col);
                });

                $(this).autocomplete({
                    source: "search_tip.php?w="+$('#hidden_col').val(),
                    dataType: "json",
                    minLength: 2
                });
              });
            });
        </script>

在html中添加隐藏的输入:

<input type="hidden" id="hidden_col" />