我正在使用可编辑字段模块的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事件仍未执行。
答案 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的输入。