由于 Javascript 性能可能会在大型输入表单上变得密集,那么跟踪和标记输入字段更改的最简洁和最快的方法是什么?
该项目使用 .NET (MVC),输入绑定到 ViewModel,但这可能(至少是半)无关紧要。如果可能有几千个字段和许多隐藏的输入字段(通常数量较少,但在某些情况下可能有几千个),我主要关心的是避免性能问题。有下拉菜单、文本字段、复选框等。
具有各种输入类型的长表单。
<input type="... textbox/select..." class="trackMe" ... />
<input type="hidden" class="hiddenInputIsDirty" ... />
想到的选项。
不显眼:
$( ".trackMe" ).on( "change", function() {
$(this).sibling("#hiddenInputIsDirty").val("true");
});
或者
或者onClick="Observe.MarkChanged();"
在输入上使用。
(function( Observe, $, undefined ) {
//Public Method
Observe.MarkChanged = function() {
$(this).sibling("#hiddenInputIsDirty").val("true")
};
}( window.Observe= window.Observe|| {}, jQuery ));
澄清一下:每个可见的输入字段都会有一个隐藏的输入字段来标记。当用户更改输入字段值时,它会触发一些东西来将隐藏字段标记为已更改。我认为这是跟踪更改的最快和最可靠的方法。是否已知其中一种方法更快,或者是否有更快的替代方法?