Formularfeld defaultvalue bei Klick leeren

_bluefire_

Grünschnabel
Hallo Miteinander

Ich steh ziemlich auf dem Schuh... wollte ein kleines Script schreiben, welches in meinem Formular den default-value eines Textfeldes (input type="text") (Beispiel: bitte Name eingeben) per Klick also per "onFocus" leert.

Code:
<script language="javascript" type="text/javascript">
function formLeeren(){
    var form = document.forms["mailform"];
    for(i=0;i<form.elements.length;i++){
        if(form.elements[i].type == 'text' || form.elements[i].type == 'textarea'){
        
            form.elements[i].onFocus = if(this.value==this.defaultValue)this.value='';

        }
    }
}
</script>

Habe mir den Code mehr oder weniger zusammengeklickt. Was mache ich falsch? Ich erhalte eine Fehlermeldung (missing ")") finde den Fehler aber nicht :-(

Danke für eure Unterstützung.


grüsse
bluefire
 
Probier es mal so:
HTML:
Name&nbsp;<input type="text" value="Bitte Namen eintragen" onfocus="this.value = '';" />
 
Du kannst einem Event keine Anweisung zuordnen, dort wird eine Funktion erwartet...entweder eine bereits vorhandene...oder aber wie bei dir sinnvoll, eine neue:
Code:
form.elements[i].onfocus = function()
              {
                if(this.value==this.defaultValue)
                  {
                    this.value='';
                  }
              }
 
Ahhh Danke Sven! Ich dachte schon da ist sonst noch was faul :-) Habe es jetzt so eingebaut aber leider kriege ich immernoch einen "missing ) after condition"-Error.

bin ich blind?

thx auch @ tobee aber diese Variante geht leider nicht in meinem Web ausserdem würde das auch nur wenig Sinn machen weil bei jedem onFocus der Wert dann gelöscht wird. Er soll aber nur gelöscht werden wenn er dem Standardwert (defaultValue) entspricht, wie Sven das geschrieben hat.

Thx
 
Mmmh...da ist sonst eigentlich nichts weiter, vielleicht gaukelt dir dein Browser was aus dem Cache vor :eek:

Hier mal zum Testen:
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function formLeeren()
{
  var form = document.forms["mailform"];
    for(i=0;i<form.elements.length;i++)
    {
        if(form.elements[i].type == 'text' || form.elements[i].type == 'textarea')
        {
            form.elements[i].onfocus = function()
              {
                if(this.value==this.defaultValue)
                  {
                    this.value='';
                  }
              }
            form.elements[i].onblur = function()
              {
                if(this.value=='')
                  {
                    this.value=this.defaultValue;
                  }
              }
        }
    }
}
window.onload=formLeeren;
</script>
</head>
<body>
<form name="mailform">
  <input type="text" value="testtext">
  <textarea>testtext</textarea>
</form>
</body>
</html>
 

Neue Beiträge

Zurück