我有一个视图与一个暴露的过滤器(一个选择).当用户点击“应用”时,使用ajax重新填充.我希望他们不要点击,只要重新填充选择时更改.我假设我将需要一些JS或多或少的这样(虽然这似乎不起作用):
$('#edit-tid').change(function(){ $('#views-exposed-form-MYVIEW-page-1').submit(); });
首先,我会认为这样做,但没有提交.有人知道为什么吗
其次,注入代码最好的方式是什么?我正在考虑使用View页脚,因为它很容易,但是还有其他更好的想法?
更新:上面的代码正在工作(通过视图页脚注入),但只有第一次.我猜这个选择被ajax调用所覆盖,但这个行为并没有被重新连接(或某些东西).嗯…
更新#2:为了简单起见,我要把ajax扯掉.
解决方法
为了在ajax调用之后重新附加此代码,它应该首先通过Drupal.behaviors附加.这样的东西
Drupal.behaviors.myCustomModule = function(context) { $('#edit-tid',context).change(function(){ $('#views-exposed-form-MYVIEW-page-1').submit(); }); }
请注意,context参数传递给选择器.应该通过ajax加载的新内容再次调用Drupal.behaviors.
更新:我没有注意到您通过视图页脚插入js.上述方法仍然可以正常工作,只需用一些唯一的标识符替换’myCustomModule’,这样就不会覆盖其他行为.