Javascript Jquery从dom获取新值
在我的页面中,我试图保留旧的价值观,当出现问题时,我需要找回它Javascript Jquery从dom获取新值,javascript,jquery,Javascript,Jquery,在我的页面中,我试图保留旧的价值观,当出现问题时,我需要找回它 ex: var $oldVal; $(document).delegate('.edit','click',function(){ $oldVal = $(this).closest('tr').find('input'); }); $(document).delegate('.save','click',function(){ $.get('servlet',function(result){ if
ex:
var $oldVal;
$(document).delegate('.edit','click',function(){
$oldVal = $(this).closest('tr').find('input');
});
$(document).delegate('.save','click',function(){
$.get('servlet',function(result){
if (result.result == "true"){
$newVal = $(this).closest('tr').find('input');
}else if ( result.result == "false" ) {
$newVal = $oldVal; //
}
});
});
当我尝试以$为单位获取新val时,每个都是这样
$.each($newVal,function(k,v){
value = $(v).val(); /// PROBLEM ( 1 )
});
它永远不会得到旧的价值。它总是得到新的。我试图使一个输入框,将在用户输入是正确的相同,但如果它是错误的,那么它需要得到旧的值 保存的只是围绕DOM元素的jQuery包装器。您没有复制该值
var oldVal;
$(document).on('click', '.edit', function(){
oldVal = $(this).closest('tr').find('input').val();
});
这样,您就可以保存输入的实际值,以便在它发生更改时可以恢复它
请注意,.delegate API已经过时很久了。问题在于您存储的是输入元素,而不是输入元素的值。当输入元素保持不变时,值可以更改 要存储该值,应执行以下操作:
oldVal = $(this).closest('tr').find('input').val();
//...
if (!result.result) {
$(this).closest('tr').find('input').val(oldVal);
}