2017-09-12 3 views
0

Ich habe ein kleines Projekt, an dem ich arbeite, und aus irgendeinem Grund sagt Chrom, dass der Code unten undefiniert ist.Funktion undefiniert, wenn durch Chrome Browser

HTML:

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

Javascript:

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

Kann mir jemand helfen, herauszufinden, warum dies so funktioniert?

+1

wo die Funktion deklariert? Ist das der ganze Code? Eingaben haben keine schließenden Tags. – epascarello

+0

Dies ist die erste Instanz der Funktion und wird vom Eingang aktiviert. –

+0

'cleartxt' müsste global sein, damit das funktioniert. Wenn diese Variable innerhalb einer Funktion zugewiesen wird, wird sie auf diese Funktion beschränkt. Versuchen Sie, es in 'window.cleartxt = ...' zu ändern. – skirtle

Antwort

0

Ihr Code funktioniert einwandfrei. Hier ist das Arbeits-Snippet.

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

Danke! Ich benutzte Codepen und da es nicht funktionierte, dachte ich, es gäbe ein Problem. –

+0

@ArunRedhu Ihre Eingabe unterscheidet sich von der OP .. Das OP hat eine schließende Eingabe-Tag .. –

+0

@ShadowFiend Es spielt keine Rolle in Plain 'html', Browser versteht das gleiche. Es wird empfohlen, Eingaben wie Tags selbst zu schließen. –

0

Sobald Sie onclick und Call-Funktion direkt in der Dom verwenden, müssen Sie eine globale Funktion definieren und definieren, bevor das Dokument vollständig geladen, z. B .: Legen Sie die Funktionsdefinition in der <head>.

0

Der richtige Weg, um eine Eingabe zu schreiben, ist

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

ohne Tag zu schließen.

Sie müssen die Funktion im Kopf Ihres HTML deklarieren, und Sie haben die Eingabe mit der "Text" ID.

0

Erst <input> hat kein schließendes Tag. Zweitens, wenn Sie input type="reset" keine Notwendigkeit für Javascript verwenden wollen, aber sie müssen in einer Form sein .. Siehe das Snippet unten ..

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>

Verwandte Themen