2016-12-07 3 views
1

javascriptを使用してテキストエリアの値が変更されたときは、どうすれば検出できますか?javascriptを使用してテキストエリアの値が変更されたときは、どうすれば検出できますか?

その後、id="yyyy"にデータを、データを記入id="xxxx"どのように私はid="xxxx"変化alertとき値が、あまりにも変更されますか?

https://jsfiddle.net/9b6h897d/10/

機能checkでコードを編集していないとid="yyyy"

<textarea id="yyyy" onkeyup="check(this.value)"></textarea> 
<textarea id="xxxx" onchange="check2(this.value)" readonly></textarea> 

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
} 
function check2(value){ 
    alert(value); 
} 
</script> 
+0

[Textarea値の変更に関するjQueryのテキストの更新]の可能な複製(http://stackoverflow.com/questions/7165519/update-text-on-textarea-value-change-w-jquery) –

答えて

0

からinaccessible関数を呼び出す:だからid=xxxx

EDITからのonchangeイベントを削除します。

<html> 
    <head> 
     <script> 
      //Is not changable according to OP 
      function check(value){ 
       document.getElementById('xxxx').value = value 
      }; 

      //Is not changable according to OP 
      function check2(value){ 
       alert(value) 
      }; 

      window.onload = function(){ 
       var tE = document.querySelector('#xxxx'); //The readonly textarea 

       //Redefine the value property for the textarea 
       tE._value = tE.value; 
       Object.defineProperty(tE, 'value', { 
        get: function(){return this._value}, 
        set: function(v){ 
         console.log(this.id, ' - the value changed to: ' + v) 
         this._value = v; 
         this.setAttribute('value', v) //Setting the attribute (browser stuff); 
         check2(v) 
        } 
       }) 
      } 
     </script> 
    </head> 

    <body> 
     <textarea id = 'yyyy' onkeyup = 'check(this.value)'></textarea> 
     <textarea id = 'xxxx' onchange = 'check2(this.value)' readonly></textarea> 
    </body> 
</html> 

consol e。ログイン(): https://jsfiddle.net/mu7o1sxq/

警告(): https://jsfiddle.net/mu7o1sxq/2/

+0

デモで私はanyrthingを取得しませんT___T –

+0

@weduti sepoyuei:それはコンソールにあります。男性は警告を好むのですか? – Lain

+0

@weduti sepoyuei:alert()で2番目のバージョンを作成しました。 – Lain

0

あなたは他の関数の内部で関数を呼び出すことができますしてください

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
    check2(value); 
} 
function check2(value){ 
    alert(value); 
} 

jsfiddle

+0

ファンクションチェックが無効です私のコントロールT___T –

+0

これは初めて 'undefined'に警告します。 – gkb

+0

はい@gkb – nisar

1

はこれを試してみてください変更イベントに

を最初ないで第2の機能を呼び出す...このバイオリンを試してみてください。

<textarea id="yyyy" onkeyup="check(this.value)"></textarea> 
<textarea id="xxxx" readonly></textarea> 

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
    check2(value);//call the check2 here 
} 
function check2(value){ 
    alert(value); 
} 
</script> 

または

のonchangeイベントをトリガ

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
    document.getElementById("xxxx").onchange(); 
} 
function check2(value){ 
    alert(value); 
} 
</script> 

たり、xxxにあなたが代わりにcheck2()を呼び出して値を更新check()の値を更新する必要がいけない

<textarea id="yyyy" onkeyup="check(this.value)" oninput="check2(this.value)"></textarea> 
<textarea id="xxxx" readonly></textarea> 

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
} 
function check2(value){ 
    alert(value); 
} 
</script> 
+0

関数' check'と 'id =" yyyy "をT内に更新しましたT_T –

+0

男性を得て制御します:)) – madalinivascu

+0

それはどういう意味ですか? – madalinivascu

0

に別のイベントを追加します。次のようにkeyupをオーバーライドして、あなたはtextarea要素のvalueプロパティを再定義することができ、そのイベントハンドラ

<textarea id="yyyy" onkeyup="check(this.value)"></textarea> 
 
<textarea id="xxxx" readonly></textarea> 
 

 
<script> 
 
    function check(value) { 
 
    //your unaccessible function 
 
    } 
 

 
    document.getElementById("yyyy").addEventListener('keyup', function() { 
 
    document.getElementById("xxxx").value = this.value; 
 
    alert(this.value); 
 
    check(this.value) 
 
    }); 
 
</script>

+0

関数 'check'と' id = "yyyy" 'がT_T –

+0

@wedutisepoyueiの中にあるので、制限があるのでキーアップをオーバーライドする必要があります。更新された回答をお試しください。 – ScanQR

0

あなたはattributes:trueに設定された構成とMutationObserverを使用することができ、check機能

<textarea id="yyyy" onkeyup="check(this.value); document.getElementById('xxxx').dataset.value = this.value"> 
 
</textarea> 
 
<textarea id="xxxx" data-value="" readonly></textarea> 
 

 
<script> 
 

 
    var x = document.getElementById("xxxx"); 
 

 
    function check(value) { 
 
    document.getElementById("xxxx").value = value; 
 
    } 
 

 
    function check2(value) { 
 
    alert(value); 
 
    } 
 

 
    var observer = new MutationObserver(function(mutations) { 
 
    mutations.forEach(check2.bind(x, x.value)) 
 
    }); 
 

 
    observer.observe(x, { 
 
    attributes: true 
 
    }); 
 

 
</script>

#yyyy.value#xxxx .datasetを設定
関連する問題