jQuery使用选定的提交按钮继续提交表单

时间:2016-03-26 13:07:01

标签: javascript jquery html forms coffeescript

我正在拦截使用jQuery提交表单并在继续提交之前验证一些内容。问题是页面上有多个提交按钮有不同的操作,当我在验证后尝试调用value % 0.5时,提交按钮的form.submit()标记丢失/未在request-params中发送。

我的HTML看起来像这样:

name

并且在coffeescript代码中我正在截取表单提交:

<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()

1 个答案:

答案 0 :(得分:0)

为每个提交按钮添加一个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);