【问题标题】:jQuery continue form submission with selected submit buttonjQuery 使用选定的提交按钮继续提交表单
【发布时间】:2016-07-14 03:18:04
【问题描述】:

我正在使用 jQuery 拦截表单的提交,并在继续提交之前验证一些事情。问题是页面上有多个具有不同操作的提交按钮,当我在验证后尝试调用form.submit() 时,提交按钮的name 标记丢失/未在请求参数中发送。

我的 HTML 如下所示:

<input type="submit" name="publish" value="Publish">
<input type="submit" name="draft" value="Save as draft">

在咖啡脚本代码中,我正在拦截表单提交:

$('#foo-form').submit (e) ->
  e.preventDefault()
  form = this

  # DO WORK...
  # A callback eventually calls form.submit()

我想以某种方式存储单击了哪个按钮并将其传递给form.submit()

【问题讨论】:

标签: javascript jquery html forms coffeescript


【解决方案1】:

click 事件处理程序添加到每个提交按钮,以添加(或更新)带有值的隐藏输入。

function store_submit_value (ev) {
    var $frm = jQuery(this.form);
    var $input = $frm.find("input.submit_value");
    if (!$input.length) {
        $input = jQuery("<input />")
            .attr("type", "hidden")
            .addClass("submit_value")
            .appendTo($frm);
    }
    $input.attr("name", this.name).val(this.value);
}

jQuery("#foo-form").on("click", 'input[type="submit"]', store_submit_value);

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 2023-03-29
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多