Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery从dom获取新值_Javascript_Jquery - Fatal编程技术网

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);
}