2012-02-29 101 views
2

我有一个用户可以输入的输入字段。这个输入在keyup上也有一个ajax请求。JQuery的输入变化与选择框不触发事件?

此输入字段也可以由选择框触发的onchange事件填充,唯一的问题是当输入由选择框填充onchange时,不会为输入字段触发ajax,因为用户不会键入它。

我也使用这些在输入字段上触发ajax,并且它们中的任何一个都无法工作,例如用户在输入字段中手动输入字段或使用选择框填充输入字段。

.live('change, keyup', function() { 

.change(function() { 
+1

我不认为你应该有一个逗号分隔事件类型,只是一个空格。 – karim79 2012-02-29 00:11:50

+0

你也是我的错,但它仍然行不通?! – cgwebprojects 2012-02-29 00:17:35

回答

5

当它是值使用JavaScript更新元素events不会被触发。你应该叫从.change功能keyup事件中,当你设置的值如下,

DEMO

.change(function() { 
    //... 
    $('.input').val($(this).val()).keyup(); 
}); 
+0

更改不起作用,因为它在jquery手册中声明只有当输入字段更改时才触发更改onblur – cgwebprojects 2012-02-29 00:16:05

+0

真棒我现在明白了谢谢 :) – cgwebprojects 2012-02-29 00:21:55

0

您正在寻找onfocus JS/focus JQuery的

+0

这不起作用,因为当用户更改选择框时,输入永远不会对焦 – cgwebprojects 2012-02-29 00:14:37

2

首先,KEYUP处理程序连接到输入栏,然后点击你的选择框,你会当可能喜欢的东西填充您的输入:

$('select').on('change', function() { 
    $('input').val('some value').keyup(); //the last keyup will trigger the bound keyup on the input 
}); 

这将触发KEYUP,至极反过来将运行AJAX功能!

编辑: 我现在看到,这几乎是SKS给出的答案,它是正确的?