11

我有两种形式。

<form name="frm1" action="someurl" method="post">
  <input type="submit" name="btn1" class="buttons" value="Submit"/>
</form>

<form name="frm2">
  <input type="submit" name="btn2" value="Submit"/>
</form>

我需要在点击表单“frm2”的“btn2”时提交表单“frm1”。

4

6 回答 6

41
<button type="submit" form="form1" value="Submit">Submit</button>

form属性指定id按钮将提交的表单的类型。

于 2016-03-21T13:29:40.467 回答
16

你会说

<input type="submit" name="btn1" id="btn1" value="Submit"/>

 $("#btn1").click(function(){  
  $("#frm1").submit();
}

<input type="submit" name="btn2" id="btn2" value="Submit"/>

 $("#btn2").click(function(){  
  $("#frm1").submit();
}
于 2013-02-28T07:34:48.817 回答
4

HTML

<form name="frm1" action="someurl" method="post" id="frm1">
<input type="submit" name="btn1" class="buttons" value="Submit"/>
</form>


<input type="submit" name="btn2" onclick="formSubmit()" value="Submit"/>

Javascript

<script>
function formSubmit()
{
document.getElementById("frm1").submit();
}
</script>
于 2013-02-28T08:19:17.170 回答
2

考虑 HTML:

    <form id="target" action="destination.html">
    <input type="text" value="Hello there" />
    <input type="submit" value="Go" />
    </form>
    <div id="other">
    ....
    </div>

事件处理程序可以绑定到表单:

    $('#target').submit(function() {
    alert('Handler for .submit() called.');
    return false;
    });

点击功能:

    $('#other').click(function() {
    $('#target').submit();
    });

这里是链接看看: 如何在使用 preventDefault() 时在按钮单击时提交表单?

于 2013-02-28T07:55:11.140 回答
1

您可以使用 ajax 在第二个表单之前提交第一个表单:

$('form[name=frm2]').submit(function() {
    var form1 = $('form[name=frm1]');
    $.ajax({
        type: "POST",
        url: form1.attr('action'),
        data: form1.serialize(),
        async: false;
    });
});
于 2013-02-28T07:36:19.190 回答
0

我通常避免使用 .submit() 函数,因为我几乎总是需要对 .submit() 允许我做的响应做更多的事情。

因此,必须将提交按钮的非 .submit 选项更改为普通按钮。

$('.btn2').bind('click', function(){

    var form1Data = $('#frm1').serialize();
    $.ajax({
        url : 'someurl',
        type : 'post',
        datatype : 'json',
        data : form1Data,
        success : function(json) {
            sumbitForm2();
        }
    });
});

function submitForm2() {

    var form2Data = $('#frm2').serialize(); 
    $.ajax({
        url : 'urlToSumbitForm1',
        type : 'post',
        datatype : 'json',
        data : form2Data,
        success : function(json) {
            //do something if you need to
        }
    });
}
于 2013-02-28T07:45:29.613 回答