2015-10-07 103 views
-1

我在使用textareas之前已經完成了一個類似的案例。然而,divs沒有得到相同的結果。當檢查「previousVal」我得到未定義,很可能是因爲我沒有正確檢查值。因爲這是變化總是返回True,即使沒有文本變化已經制定了div的anny。我如何提取正確的數據來比較previousval和currentVal。這個想法是簡單地檢查天氣anny textchanges已經作出了divs sence最後加載頁面。如果是,那麼isChange應該是true,否則爲false。檢查div值時出現undefined

HTML:

<h3>Handlartext1...</h3> 
<div class="classA ClassB ClassC">Hello</div></textarea><br/><br /> 

<h3>Handlartext2...</h3> 
<div class="classA ClassB ClassC">Bonjour</div></textarea><br/><br /> 

<h3>Handlartext3...</h3> 
<div class="classA ClassB ClassC">Goddag</div></textarea><br/><br /> 

<input id="btnClick" type="button" value="Save and continue" /> 

腳本:

$('#btnClick').on("click", function() { 
     if (CheckTextChange()) { 
      alert('TRUE'); 
     } else { 
      alert('FALSE'); 
     } 
    }) 


    function CheckTextChange() { 

     //Checks if values have changed in elements containing class="txt" 
     var isChanged = false; 
     $('.ClassC').each(function() { 
      var previousVal = $(this).get(0).defaultValue, 
       currentVal = $(this).text(); 
      //alert($(this).text()); //or $(this).text(); 

      if (currentVal != previousVal) { 
       isChanged = true; 
       alert(previousVal + ' changed into ' + currentVal); 
      } 
     }); 

     return isChanged; 
    } 
+1

''?爲什麼? –

+0

,我不認爲div有任何默認值? – Jai

回答

-1

您可以標記與默認值的數據集的股利,然後你可以比較一下:

<h3>Handlartext1...</h3> 
<div data-default-value="Hello" class="classA ClassB ClassC">Hello</div><br/><br /> 

我不不知道爲什麼你需要</textarea>所以我刪除它。

然後在Javascript:基於您的代碼

var previousVal = $(this).dataset().defaultValue; 
var currentVal = $(this).text(); 
0

我相信你想有一個文本框,提交時,說明是否有任何改變原來的。

這是我用來做這個代碼和工作的jsfiddle如下:

HTML

<h3>Handlartext1...</h3> 
<div data-default="Hello" class="classA ClassB ClassC"><textarea>Hello</textarea><br/><br /></div> 

<h3>Handlartext2...</h3> 
<div data-default="Bonjour" class="classA ClassB ClassC"><textarea>Bonjour</textarea></div><br/><br /> 

<h3>Handlartext3...</h3> 
<div data-default="Goddag" class="classA ClassB ClassC"><textarea>Goddag</textarea></div><br/><br /> 

<input id="btnClick" type="button" value="Save and continue" /> 

JQuery的

$('#btnClick').on("click", function() { 
     if (CheckTextChange()) { 
      alert('TRUE'); 
     } else { 
      alert('FALSE'); 
     } 
    }); 


    function CheckTextChange() { 

     //Checks if values have changed in elements containing class="txt" 
     var isChanged = false; 
     $('.ClassC').each(function() { 
      var previousVal = $(this).attr('data-default'); 
      console.log(previousVal); 
      $textarea = $(this).find('textarea'); 
      var currentVal = $textarea.val(); 
      console.log(currentVal); 

      if (currentVal != previousVal) { 
       isChanged = true; 
       alert(previousVal + ' changed into ' + currentVal); 
      } 
     }); 

     return isChanged; 
    }; 

JSFiddle