2017-09-12 13 views
0

私は現在取り組んでいる小さなプロジェクトを持っています。何らかの理由でクロム氏は以下のコードは未定義であると言います。クロムブラウザで実行すると機能が未定義

HTML:

<input type="reset" onclick="cleartxt()" class="rset" value="Clear Text"></input> 

Javascriptを:

var cleartxt = function() { 
     document.getElementById("text").value = ""; 
    }; 

誰かがこの方法で機能している理由は、私が把握助けることができますか?

+1

どこ関数が宣言されていますか?それはすべてコードですか?入力に終了タグはありません。 – epascarello

+0

これは関数の最初のインスタンスであり、入力によってアクティブ化されます。 –

+0

'cleartxt'が動作するにはグローバルにする必要があります。その変数が関数内から割り当てられる場合、その関数にスコープされます。それを 'window.cleartxt = ...'に変更してみてください。 – skirtle

答えて

0

コードは正常に動作しています。ここに作業スニペットがあります。

var cleartxt = function() { 
 
     alert('reset working'); 
 
     document.getElementById("text").value = ""; 
 
};
<input type="text" id="text" /> 
 
<input type="reset" onclick="cleartxt()" class="rset" value="Clear Text"/> 
 

 

+0

ありがとう!私はcodepenを使用していましたが、動作していなかったので、問題があると思いました。 –

+0

@ArunRedhuあなたの入力はOPとは異なります。OPには終了タグがあります。 –

+0

@ShadowFiend Plainの 'html'では問題ありません。ブラウザはこれを理解しています。入力のようなタグは自己終了することをお勧めします。 –

0

domで直接onclickを呼び出して関数を呼び出すと、グローバル関数を定義し、ドキュメントが完全にロードされる前に定義する必要があります。たとえば、関数定義を<head>に入れます。

0

入力を書き込むための正しい方法は、タグを閉じず

<input type="reset" onclick="cleartxt()" class="rset" value="Clear Text"> 

あります。

あなたはhtmlの先頭に関数を宣言しなければなりません。そして、あなたは "text" idで入力を入れます。

0

最初<input>には終了タグがありません。第二に、あなたがinput type="reset"にjavascriptのための必要性を全く使用しないようにしたいが、彼らは、フォーム内でなければならない場合...下記のスニペットを参照してください。..

var cleartxt = function() { 
 
    document.getElementById("text").value = ""; 
 
};
<input type="button" onclick ="cleartxt()" class="rset" value="Clear Text" > 
 
<input type="text" id="text" > 
 
<br /> 
 
<br /> 
 
<p>With form</p> 
 
<form> 
 
    <input type="reset" class="rset" value="Clear Text" > 
 
    <input type="text" id="text" > 
 
</form>

関連する問題