在选择列表上触发Ajax onchange

时间:2014-02-18 16:48:08

标签: ajax drupal-7 onchange selectlist

我正在使用可编辑字段模块的Drupal项目。

使用该模块我正在公开文本选项的下拉列表。它工作得很好。单击列表,选择一个选项,然后通过Ajax更新该选项。

我的挑战是我试图通过jQuery以编程方式更改选项。使用以下代码:

jQuery('select#edit-field-status-0-field-status-und').val(1);

...我的浏览器控制台区域对代码感到满意,但没有进行Ajax更新。 我试过了:

jQuery('select#edit-field-status-0-field-status-und').val(1).change();

同样没有错误,但Ajax事件仍未执行。

2 个答案:

答案 0 :(得分:1)

$('#edit-field-status-0-field-status-und').val("1");

会做到这一点,因为它不起作用的唯一原因是你将选择值作为字符串而不是数字。

或者以下更详细:

$('#edit-field-status-0-field-status-und option').eq(1).prop('selected', true);

这也不是'AJAX'函数,它只是Jquery更新特定元素的DOM。

答案 1 :(得分:0)

我在下面重新创建的代码是正确的:

jQuery('select#edit-field-status-0-field-status-und').val(1).change();

我发现它无法工作的原因是因为目标元素的ID动态变化。 因此,当我第一次检查并找到 edit-field-status-0-field-status-und 时,相同的元素会将ID更改为 edit-field-status-0-field-状态-UND - 1

这样就把事情搞砸了,给我的印象是我的代码无效。

感谢@gts的输入。