2013-03-25 38 views
1

我使用MVC4,jQuery的,AJAX和JSON,我有任務避免DB調用重置使用MVC和jQuery

在登記表,已經獲取的數據輸入的數據爲editing.I編輯內容。然後點擊取消按鈕,表格數據被重置爲編輯前的數據。

有沒有辦法避免數據庫調用重置值。我聽說jquery維護重置值的歷史數據選項。

回答

1

您第一次進行數據庫調用以獲取值.....將這些值作爲JSON對象存儲在客戶端。當用戶編輯數據時,這些對象將能夠保持其狀態,因此將保持不變。因此,單擊取消時,將從存儲在客戶端的JSON對象中獲取原始值。因此在這種情況下,整個流程將在客戶端,並且不會進行服務器調用。

+1

好主意。一個很好的實現方法可能是創建自定義MVC HtmlHelper擴展,如ResettableTextboxFor(),它基本上會創建文本框,但會自動向存儲其初始值的元素添加一個'data-init-val'屬性,您可以然後只需遍歷所有輸入元素並在取消按鈕按下時重置值。 – tostringtheory 2013-03-25 05:23:37

0

我相信你可以有一個通用的方法來保存當前值(和其他屬性,如checked)的幾個輸入端,另一個反向的值給保存的價值,使用jQuery data

function save() { 
    $("input, textarea, select").each(function() { 
     $(this).data("savedVal", $(this).val()); 
     $(this).data("savedChecked", $(this).prop("checked")); 
    }); 
} 

function reset() { 
    $("input, textarea, select").each(function() { 
     $(this).val($(this).data("savedVal")); 
     $(this).prop("checked", $(this).data("savedChecked")); 
    }); 
} 

Demo。我建議將選擇器限制爲特定的表單,而不是捕獲整個頁面中的所有輸入。