尝试使用带有多个提交按钮的jquery提交表单

时间:2015-03-10 16:44:26

标签: javascript php jquery ajax forms

我有一个名为事件表格的表格。它有一个超过90个字段的表单,在这个表单中我有几个提交按钮。前两个如下:

<input type="submit" class="button" id="updateincidentButton" name="updateincidentButton" value="Update Incident"> 
<input type="submit" class="button" id="cancelincidentButton" name="cancelincidentButton" value="Cancel Incident">

他们是我对事件的基本更新,或者如果他们不想,则用户取消事件 在这个表单中,我希望用户能够为错过的工作添加一系列日期范围,因此我在表单中构建了一个“子表单”,它只是一个div,其中包含一些字段,用于为错过的工作添加这些日期范围。我使用jquery和ajax在“添加Osha Days”按钮中构建此部分。单击以下按钮时会提交。

<input type="submit" name="saveoshadayssubmit" id="saveoshadayssubmit" value="Save OSHA Days" class="button rmargin3">

所有这一切都完美地使用提交按钮和php处理文件。

现在我正在尝试使用ajax来更新添加天数记录并刷新表单的一部分,这些部分总结了这几天添加的记录无济于事。 这是我刚刚开始测试的jquery片段。它不起作用,因为它只是默认表单提交。 在代码中,我在这一点上只是试图捕获div中的输入,我将其视为“addoshadaysdiv”。我正在使用警报,因为我总是看到我是否正在捕获我想要的数据。它似乎没有工作。

$(function(){
$("#saveoshadayssubmit").click(function(){
    $("#incidentform").submit(function(event){
        var formdata = $("#addoshadaysdiv *").serializeArray();
        alert(formdata);
        event.preventDefault();
})
})

正如您所看到的,我只是在“saveoshadayssubmit”按钮单击时尝试这样做。关于我做错了什么想法?

这是div代码。

<div id="addoshadaysdiv">
<div class="paddingbottom3">
<label class="rmargin3 subtitle">OSHA Days</label>
<input type="hidden" name="oshadaysid" value="3">
</div>
<div class="paddingbottom3">
<input type="submit" name="saveoshadayssubmit" id="saveoshadayssubmit" value="Save OSHA Days" class="button rmargin3">
<input type="button" name="closeoshadayssubmit" value="Close OSHA Days" class="button">
</div>
<div>
<label for="oshastartdate" class="rmargin3">Start Date:</label>
<input type="text" id="oshastartdate" name="oshastartdate" value="01/03/2015" class="datepick eighth rmargin10">
<label for="oshaenddate" class="rmargin3">End Date:</label>
<input type="text" id="oshaenddate" name="oshaenddate" value="03/11/2015" class="datepick eighth rmargin10">
<label for="oshadaytypeid" class="rmargin3">OSHA Days Type:</label>
<select id="oshadaytypeid" name="oshadaytypeid">
<option value="3">Job Transfer</option>
<option value="2">Light Days</option>
<option value="1">Lost Days</option>
</select>
</div>
</div>

1 个答案:

答案 0 :(得分:1)

我想您要删除.submit()行,然后在click上运行该内部函数。

请改为尝试:

$("#saveoshadayssubmit").click(function(e){
    e.preventDefault();
    var formdata = $("#addoshadaysdiv *").serializeArray();
    console.log(formdata);
})