2015-09-16 56 views
1

當談到MVC,Ajax和JavaScript時,我仍然是一個新手。我有一個應用程序,我必須做出改變。現在,當進行更改並保存時,微調器會在信息保存和頁面加載時顯示。對於保存的代碼如下所示:停止頁面處理單元按鈕點擊對話框

$('#SaveButton').on('click', function() { 
    navParams.isDirty = false; 
}); 

HTML看起來像這樣:

<input type="submit" value="Save" class="btn btn-block btn-primary user-action" name="action:Save" id="SaveButton" /> 

只是說明有屏幕上的多個按鈕,以便它使用從How do you handle multiple submit buttons in ASP.NET MVC Framework?

「多扣」的解決方案加入

下面的代碼:

$('#SaveButton').on('click', function() { 
    navParams.isDirty = false; 
    displaySavePromptMessage(); 
}); 
function displaySavePromptMessage() { 
    if (isModalOpen == false) { 
     bootbox.dialog({ 
      closeButton: false, 
      title: "", 
      message: "<strong>Warning: </strong>Changes have been made, ensure corresponding dates have been updated on the screen", 
      buttons: { 
       success: { 
        label: "Ok", 
        callback: function() { 
         navParams.userAction = false; 
        } 
       } 
      } 

     }); 
    } 
} 

現在什麼發生的是單擊保存按鈕,微調器開始運行,對話框加載,但在單擊確定按鈕之前,對話框按鈕關閉,微調器停止。更改已保存。 需要發生的事情是微調器啓動,對話框加載並且一切都保持不變,直到用戶單擊確定。然後處理繼續。我不知道如何做到這一點。有什麼想法嗎?

+0

哪裏是保存所有的代碼?從我看到它應該在'callback'中。 – tcooc

回答

2

基本概念。你要聽submit事件,並防止它:

$('.some-form').on('submit', function(submitEvent) { 
    submitEvent.preventDefault(); 
}); 
在你的處理器

然後,你需要提交成功表單:

// Inside your success handler 
$('.some-form').get(0).submit(); 
0

你必須輸入type="submit"將提交表單時,該按鈕被點擊。要麼改變這type="button"或@Lesha Ogonkov說

$('#yourFormID').on('submit', function (e) { 
e.preventDefault();//it will stop loading page on form submission 
}); 

在裏面你阿賈克斯成功處理函數

$('.myFromID').get(0).submit(); 
+0

感謝您的答案!我嘗試將類型更改爲按鈕,並確保對話框保持打開狀態,直到單擊確定按鈕。但數據未保存。 – rsford31

+0

對於其他選項,我的表單ID是InputForm。除了$('#SaveButton')之外,我還會添加$('#yourFormID')on('submit',function(e){e.preventDefault(); on('click',function ){ navParams.isDirty = false; displaySavePromptMessage(); }); – rsford31