【问题标题】:how to write a jquery event handler for dependent auto - complete fields?如何为依赖的自动完成字段编写 jquery 事件处理程序?
【发布时间】:2011-01-17 09:47:06
【问题描述】:

我有一个带有 2 个文本字段的表单,这些字段使用自动完成填充。现在,当我在表单 1 中输入一些值(通过 autocomplete )时,我希望第二个表单字段使用在 field1 中输入的文本作为参数之一来获取自动完成值。可以说,

文本 1

文本 2 (键 = 汽车品牌)

在文本 1 例如 Ford 中输入值后,我想触发一个事件,该事件将加载自动填充文本 2,以“福特”为键,即加载属于“福特”的所有汽车 (对我来说,所有自动填充都是通过 ajax 调用发生的)

哪个是最好的事件触发器(keypress、keyup 或 onchange),我应该使用它来无缝地实现这一点,而不会出现任何时间延迟或同步问题?

如果我不清楚,请告诉我。

【问题讨论】:

    标签: jquery forms autocomplete event-handling keypress


    【解决方案1】:

    试试这个:

     <input type="text" name="text1" value="whatever" id="text1" />
     <input type="text" name="text2" value="whatever" id="text2" />
    

    现在你可以像这样使用 JQuery:

     $("#text1").blur(function(){
        $("#text2").val = $(this).val();
     });
    

    我在这里使用了 blur 事件,但是您可以根据需要使用相应的 keypresschange

    【讨论】:

    • 为什么要在事件处理程序中再次在文本 1 上调用 val() ? text1 上的按键也无济于事,因为它会随着文本 1 中输入的每个字符不断触发文本 2 的自动填充
    • @Akshay:我已经修好了,顺便问一下你认为什么活动最适合你?
    • 正如我所说,您可以根据您的要求在我的答案中使用任何其他元素。
    • 忽略我的第一行,因为它是您帖子的第一次修订。但是我的帖子的其余部分仍然有效。
    • 对文本 1 的按键仍然无法为我完成这项工作。文本 2 上的按键虽然对于自动填充更有效,但是如果您正在遍历诸如 'Tab' 之类的键,则不会加载 'Shift Tab'。
    【解决方案2】:

    您可以使用ajax获取完整的数据集,然后使用js将数据插入到表单中:

    jQuery("#formID").value('value')
    

    【讨论】:

      【解决方案3】:

      我会在第一个文本框上使用“focusout”事件。

      $('#text_box_one').focusout(function() {
        //Your auto-complete code goes here.
        //Or preferably replace this inline function with a call to an auto-complete function
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-13
        • 2014-12-16
        • 2011-04-11
        • 2013-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多