2017-01-22 8 views
0

私はJavaScript機能を1回限り発行しています。javascript oninputは一度だけ起動しますか?

私は関数内でより簡潔な構造で始めましたが、離散演算に分割して何かを計算することができるかどうかを確認しました。正確に同じように動作します。私のHTMLで

、HEADタグ内、私が持っている:

他の場所ページで
id="pagecontentx" oninput="onCharInput()" 

、私はこの:

オープニングCGI TEXTAREA入力要素内
<SCRIPT> 
function onCharInput() 
{ 
var conpagechars = document.getElementById("pagecontentx").innerHTML; 
var conpagecharcount = conpagechars.length.toString(); 
document.getElementById("pccount").innerHTML = conpagecharcount; 
console.log('test',conpagecharcount); 
} 
</SCRIPT> 

、私はこれを持っています:

<span id="pccount"></span> 

テキスト領域に何かを入力すると、コンテンツの正しいサイズでスパンが更新されます。正確に1回。その後、何もしません。文字を追加したり、文字を削除したりすることはできません。コンソールコールを追加した後、firefoxコンソールを開いた状態で、結果が一度だけ表示されます。近くに私が知ることができるように、関数は初めて初めて呼び出されることはありません。

var conpagechars = document.getElementById("pagecontentx").value; 

ないこの方法:十分な

var conpagechars = document.getElementById("pagecontentx").innerHTML; 

シンプル

TIA CGIのテキストエリアのため

+0

CGIは、HTTPリクエストを処理するために、外部プログラムに話をするWebサーバのための手段です。あなたはクライアントサイドのJavaScriptを扱っています。 HTTPが関係していないので、CGIは関係しません。 – Quentin

+0

CGI形式です。私の心配は、それのために何かが違うということでした。だからこそ私はそれを言いました。なぜなら、ページが完成してからサーバーが何らかの仕事をしているとは思っていなかったからです。しかし、はい、もちろんあなたは正しいです。 – fyngyrz

答えて

0

は、データがこのようフェッチされます。 ;)

1

入力イベントが発生するたびに関数が呼び出され、毎回同じ文字列を読み込むだけです。

<textarea>innerHTMLは、のデフォルトの値を表します。

を現在の値にするには、valueプロパティを読み取る必要があります。

document.querySelector("textarea").addEventListener("input", log); 
 

 
function log(event) { 
 
    console.log("Log function is firing"); 
 
    console.log("Current value: " + this.value); 
 
    console.log("Default value: " + this.innerHTML); 
 
}
<textarea>This is the default value</textarea>

+0

うまくやった。私はあなたをアップしました。 – fyngyrz

関連する問題