7hi*_*4g0 10 javascript asp.net-mvc autosave asp.net-mvc-4
我正在实施一个Web系统来管理我公司的一些数据.我们正在使用MVC(更具体地说是ASP.NET MVC 4),我完全不熟悉它.
我遇到的问题是我们计划使用自动保存,就像GMail一样.我们计划使用排队的变更事件,偶尔通过ajax提交更改.首先,我会使用JavaScript,但不确定这是否是MVC的最佳方式.我遇到的另一个麻烦是用户输入的一些信息不是在表单内部,而是在表格中.页面的布局也有点稀疏,我不相信我可以将所有输入包装成单个表单,即使我应该这样做.
我的问题是:
注意:我已经看到了一些使用localstorage或其他客户端持久性的建议,但我需要的是服务器持久性,我们甚至没有页面上的保存按钮.
我在这里先向您的帮助表示感谢 ;)
kar*_*una 12
您可以form="myformid"向表单外部的元素添加属性以将其包含在表单中.我会data-dirty="false"在开头添加属性到所有元素,并附加更改事件,将更改元素的data-dirty属性更改为true.然后,您可以每30秒保存一次表格(获取data-change = true并传递给服务器的元素).保存后,每个元素的data-dirty再次变为false.使用jQuery自动保存的示例:
window.setInterval(function(){
var dirtyElements = $('#myformid').find('[data-dirty=true]').add('[form=myformid][data-dirty=true]');
if(dirtyElements.length > 0){
var data = dirtyElements.serialize();
$.post('saveurl', data, function(){
dirtyElements.attr('data-dirty', false);
alert('data saved successfully');
});
}
}, 30000); // 30 seconds
Run Code Online (Sandbox Code Playgroud)
将事件附加到表单的所有元素:
$(function(){
var formElements = $('#myformid')
.find('input, select, textarea')
.add('[form=myformid]')
.not(':disabled')
.each(function(){
$(this).attr('data-dirty', false).change(function(){
$(this).attr('data-dirty', true);
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6264 次 |
| 最近记录: |