2011-06-29 5 views
0

:私は、テキスト・ボックスでカットを行うとjavascript oncut bug?このコードで

<!doctype html> 
<body> 
<input id="a"/> 
<input id="b"/> 
<script> 
var a=document.getElementById("a"); 
var b=document.getElementById("b"); 
a.addEventListener("cut",function(e){ 
    b.value=a.value; 
    //the line above is not working as expected! 
    //neither does this (as per tjm's answer): b.value=a.value.substr(0,a.selectionStart); 
},true); 

</script> 
</body> 

、私はテキストボックスの-Aと同じ値を持っているテキストボックス-Bが欲しい..しかし、それは働いていません。誰もがこの問題の解決策を持っていますか?

IE9で作業するには解決策が必要です。

(これまでのところ3つの答えはありませんでした..私はjavascriptでこれを行うことはできないとは思えません。これはあまり一般的ではありませんが、そうではありませんか?)

+0

jsfiddleでテストすると、ボックスAのテキストを切り取ると、ボックスBに表示されます。何をしたいですか? http://jsfiddle.net/keroger2k/X9QwR/ –

+0

あなたはどのブラウザを使用していますか? 'a'が定義されていないので、このコードはFirefoxでは動作しません。あなたは' document.getElementById( 'a')。addEv ... 'を使う必要があります。 – brianpeiris

+0

AKiの@Kyleは "asd"と入力し、 "s"を選択してカットします。 Aの値は "ad"です。しかし、Bの値は "asd"です。私はBの値を "広告"(Aの値)としたい。 – ShenHong

答えて

2

これはあなたが望むように動作します。

<script> 
var a = document.getElementById("a"); 
var b = document.getElementById("b"); 

a.addEventListener("cut", function(e) { 

    var s = a.value; 
    b.value = s.substr(0,a.selectionStart) + s.substr(a.selectionEnd); 

}, false); 

</script> 
+0

私の編集した質問 – ShenHong

+0

@ShenHongを参照してください。 Okは私の答えを更新しました。私は*これは実際に働くと思う*。とにかく願っています。 – tjm

+0

あなたとKyleの方法の両方が機能します。 btwあなたは「良い」と個人的に感じている方法についてコメントすることができますか? – ShenHong

0

あなたは、これは間違いなく最善の解決策ではありませんが、それが動作

a.addEventListener("beforecut",function(e){ 
    b.value=a.value; 
}); 
+0

私はbeforecutを試しましたが、うまくいきません。私が欲しいのは "アフターカット"ですが、そのようなイベントはありません – ShenHong

+0

最後にあなたの目的を理解しています。私はtjmの方法がうまくいくと思います。 :) – demix

1

を試すことができます。あなたはおそらくタイムアウトを少し下げることができます。これはトータルのハックです。私はちょうど助言するべき他の何も知らない。

a.addEventListener("cut", function(evnt) { 
    setTimeout(function() { 
     document.getElementById("b").value = evnt.srcElement.value; 
    },100); 
}, true); 
+0

あなたとtjmの両方の方法が機能します。 btwあなたは「良い」と個人的に感じている方法についてコメントすることができますか? – ShenHong

+0

setTimeoutを避けようとするほうがいいよIMHO – brianpeiris

+0

私は同意します。 tjmの方が良いです。私はselectionStart/Endについて知らなかった。 –