如何从提交按钮获取formmethod和formction

Bra*_*age 6 javascript forms jquery html5

我原本以为表单对象会填充formmethod和formaction.

问题:有没有办法进行编队?或者找出单击表单中的哪个按钮,从按钮访问它们?

我是否需要重写我的事件处理程序以捕获按钮($(document).on('click', '.myformbtn', function(e))上的点击并用于var queryString= $(this).parent('form').serialize();访问表单.

<form>
    <button type="submit"
            formmethod="POST"
            formaction="/mysave">Save</button>

    <button type="submit"
            formmethod="GET"
            formaction="/mydata">Get new data</button>
</form>

$(document).ready(function()
{
    $(document).on('submit', 'form', function(e) {
        e.preventDefault();
        var formaction = $(this).getFormAction();
        var queryString= $(this).serialize();

        $.ajax({
                type: formmethod,
                 url: formaction,
                data: queryString
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我发现了类似的问题,答案总是$(this).attr('formaction')不正确,因为表单没有该属性.我希望提供一个如何使用它将让人们的大脑工作的例子.

vij*_*ayP 4

考虑到您的代码,我们可以通过以下方式获取导致表单提交的按钮:

var target = e.originalEvent || e.originalTarget;
var clickedElement = $( target.currentTarget.activeElement);
Run Code Online (Sandbox Code Playgroud)

var target = e.originalEvent || e.originalTarget;
var clickedElement = $( target.currentTarget.activeElement);
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function()
{
    $(document).on('submit', 'form', function(e) {
        e.preventDefault();
        
	var target = e.originalEvent || e.originalTarget;
        var clickedElement = $( target.currentTarget.activeElement);
        
	var formaction = $(clickedElement).attr("formaction");
        var formmethod = $(clickedElement).attr("formmethod");
      
	    alert(" formaction "+formaction); 
        
		var queryString= $(this).serialize();

        $.ajax({
                type: formmethod,
                 url: formaction,
                data: queryString
        });
    });
});
Run Code Online (Sandbox Code Playgroud)