2011-11-09 7 views
0

Je suis en train de créer un filigrane textbox en utilisant javascript mais avec le code actuel, je reçois une erreurAjout Javascript texte travail de filigrane ne marche pas

détails de l'erreur de page Web Message: « searchInput » est définie

<script type="text/javascript" language="javascript"> 

function watermark(inputId,text){ 

    var inputBox = document.getElementById(searchInput); 

     if (inputBox.value.length > 0){ 

      if (inputBox.value == text) 

        inputBox.value = ''; 
    } 
    else 
     inputBox.value = text; 
} 
</script> 

<input name="keyword2" id="searchInput" type="text" class="searchbox2" 
     value="Enter a State, County, City or Zip" size="77" maxlength="30" 
     onfocus="watermark('searchInput','Enter a State, County, City or Zip');" 
     onblur="watermark('searchInput','Enter a State, County, City or Zip');"/> 
+0

serait si bien si tous les navigateurs ont supporté l'attribut d'espace réservé html5 – Muleskinner

Répondre

0

Ajoutez des guillemets autour de searchInput. GetElementById accepte une chaîne, vous référencez une variable non déclarée.

document.getElementById('searchInput'); 
+0

Merci j'ai oublié ça! Êtes-vous heureux de savoir comment styler le texte dans l'entrée au gris? – user959443

+0

bien sûr, il suffit d'ajouter ceci dans votre css '#searchInput {color: # 666}' – ChrisR

1

La variable votre fonction prend est nommé inputId pas searchInput ..

changer donc cette ligne

var inputBox = document.getElementById(searchInput); 

à

var inputBox = document.getElementById(inputId); 

Une alternative

Et pour éviter de nommer l'élément complètement, il suffit de passer this comme premier argument car il fera référence à l'élément

function watermark(element, text) { 
    if (element.value.length > 0) { 
     if (element.value == text) { 
      element.value = ''; 
     } 
    } 
    else element.value = text; 
} 

et

<input name="keyword2" id="searchInput" type="text" class="searchbox2" 
     value="Enter a State, County, City or Zip" size="77" maxlength="30" 
     onfocus="watermark(this,'Enter a State, County, City or Zip');" 
     onblur="watermark(this,'Enter a State, County, City or Zip');"/> 

démo à http://jsfiddle.net/ZtutT/

0

Vous devez placer des guillemets autour de votre entrée de recherche getElementById Declaration, comme ceci:

document.getElementById('searchInput');

En outre, une façon plus directe et simple de le faire est de mettre dans votre entrée:

onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"

Hope this helps :)

Questions connexes