gpt4 book ai didi

javascript - 通过 Javascript 传递参数 [ :commit] value when calling form. submit()

转载 作者:行者123 更新时间:2023-11-30 18:01:39 25 4
gpt4 key购买 nike

当我在 Rails 中为同一个表单创建多个按钮时,我可以使用 param[:commit] 的值来确定按下了哪个按钮。

How do I create multiple submit buttons for the same form in Rails?

但是,我有一个搜索结果页面,用户可以在其中进一步细化搜索、通过选择或取消选择方面更新结果、更改日期过滤器等。我希望能够触发 form.submit()例如,在选中/取消选中某个方面复选框时使用 javascript。我如何将参数(例如 param[:commit] 机制)传递到我的 Controller ,以便我知道哪个用户操作触发了刷新。我不想把所有东西都变成一个按钮。

$('.facet').on('change', function(e) {

// Do some stuff

var $form = $(this).closest('form');
$form.submit(); // I want to pass in a "facet-selected" here so I know what triggered the submit

});

Controller 方法看起来像这样

def refresh_search
if params[:commit] == 'facet-selected'
# Do something
elsif params[:commit] == 'date-range-changed'
# Do something else
end
end

提前致谢。

克里斯蒂

最佳答案

我想你应该稍微改变一下表单,添加与提交按钮同名的隐藏输入,并在通过 JS 提交表单时设置它的值。例如

<form>
<input type="hidden" name="commit" />
<input type="submit" name="commit" value="date-range-changed" />
</form>

脚本

var $form = $(this).closest('form');
$form.find(':hidden').val('facet-selected');
$form.submit();

关于javascript - 通过 Javascript 传递参数 [ :commit] value when calling form. submit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16839539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com