2017-08-22 62 views
0

,所以我必須有3個按鈕形成兩個提交按鈕有不同的動作

 <td > 
      <input type="submit" id="stSave" class="button button_save pointer" value=""/> 
      <input type="submit" id="stSaveReturn" class="button button_save_return pointer" value=""/> 
      <button id="stCancel" class="button button_cancel pointer simplemodal-close"></button> 
     </td> 

當我點擊保存表單。它節省了,模態保持打開狀態。很好

當我點擊取消它關閉。很好

但是我不知道如何去做它使我點擊保存並返回它將提交表單,然後關閉模式。我試圖添加一個onclick()事件,但在提交它之前觸發。

這是我的表單減速看起來像。

<form:form method="post" action="${CTX_PATH}/admin/statepost" commandName="detailsDto" enctype="multipart/form-data"> 
+0

是這種形式在您的模態的iframe? – Scoots

+3

你可以聽'submit'事件。但爲了一個乾淨的方法,使用一個簡單的按鈕,而不是一個提交按鈕,並聽取其點擊事件。基於點擊的按鈕,做你的動作。 – KarelG

+1

我可能會試圖將stSaveReturn轉換爲普通類型=「按鈕」,並在它的點擊處理程序中處理提交和邏輯關閉。 – Taplar

回答

0

您可以使用jQuery來聆聽您的stSaveReturn輸入的提交事件。

例如:

$('#stSaveReturn').submit(function(e) { 
    e.preventDefault(); 

    $('#modal').modal('hide'); 
    return false; 
}); 
0

您可以截取表單提交事件和執行模式接近。如果您擔心iframe可能會在提交實際發生之前被銷燬,您可以使用setTimeout()呼叫延遲模式(儘管感覺過於複雜)。

見下面的示例代碼:

//using jquery 
 
$('#whatever_is_your_form_id').on('submit', function(event){ 
 
    if(event.target.id === 'stSaveReturn'){ 
 
    //either do immediate modal close 
 
    $('#modal_element_id').modal('hide'); 
 
    //or delay the modal close for 50millisecs or more 
 
    setTimeout(function closeModal(){ 
 
     $('#modal_element_id').modal('hide'); 
 
    }, 50); //close after 50ms 
 
    } 
 
});
<td > 
 
    <input type="submit" id="stSave" class="button button_save pointer" value=""/> 
 
    <input type="submit" id="stSaveReturn" class="button button_save_return pointer" value=""/> 
 
    <button id="stCancel" class="button button_cancel pointer simplemodal-close"></button> 
 
</td>

+0

這似乎沒有得到命中如果(event.target.id ==='stSaveReturn')我用console.log測試和提交部分被擊中,但不是事件目標ID是stSaveReturn – TonyO

+0

所以我不知道爲什麼,但我試圖做它只是作爲一個單擊事件stSaveTReturn按鈕關閉模式,它似乎工作正常..我發誓我昨天試過,但看着你的代碼給我,它似乎只是在做同樣的事情繞道而行。不知道現在爲什麼它有效。也許我昨​​天很累。謝謝 – TonyO

相關問題