2013-03-25 2 views
1

Я использую MVC4, JQuery, AJAX и JSON, у меня есть задачаизбежать вызова дб для сброса значения, используя MVC и Jquery

В регистрационной форме, получать данные, которые уже введены данные для editing.I редактировал content.Then я нажимаю кнопку отмены, данные формы сбрасываются до перед редактированием данных.

Есть ли способ избежать вызова db для сброса значений.? Я слышал, что jquery поддерживает параметры данных истории для сброса значений.

ответ

1

При первом вызове DB для получения значений ..... сохраняйте эти значения как объекты JSON на стороне клиента. Когда пользователь редактирует данные, эти объекты смогут поддерживать свое состояние и, следовательно, останутся неизменными. Следовательно, при нажатии cancel отменить исходные значения из объектов JSON, хранящихся на стороне клиента. Таким образом, в этом случае весь поток будет находиться на стороне клиента, и вызов сервера не будет выполнен.

+1

Хорошая идея. Хорошим способом реализации этого может быть создание пользовательских расширений MVC HtmlHelper, таких как ResettableTextboxFor(), которые в основном создают текстовое поле, но автоматически добавляют атрибут 'data-init-val' к элементу, который сохраняет свое начальное значение, что вы могли бы затем просто перебирайте все входные элементы и значение сброса на кнопке Отмена нажмите. – tostringtheory

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. Я бы предложил ограничить ваш селектор определенной формой, но вместо того, чтобы захватывать все входы на всей странице.

Смежные вопросы