Je ne sais pas pourquoi ça ne marche pas, mais je suis sûr que c'est un peu de javascript. Ma syntaxe est clairement absente et je ne sais pas pourquoi:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />
Merci!
Votre problème est avec cette ligne de code:
$(this).val() = ''
La manière appropriée de définir une valeur dans jQuery est la suivante:
$(this).val("Your value here");
En outre, JS en ligne n’est jamais une bonne idée. Utilisez ceci à la place:
$("#search").on("click", function() {
if ($(this).val() == "search")
$(this).val("")
});
Voici un violon qui travaille .
Références: jQuery .val()
Mettez ceci dans un fichier js séparé ...
cela le ramènera à la valeur initiale si rien n'est saisi après la perte de focus.
$(document).ready( function() {
$("#search").focus( function() {
if ( $(this).val()=="search") {
$(this).val('');
}
});
$("#search").blur( function() {
if ( $(this).val()=="") {
$(this).val('search');
}
});
});
Cela devrait être comme ça:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />
correct way : $this.val('');
incorrect way : $this.val() = '';
Cela est devenu plus facile avec un espace réservé HTML5:
<input type="text" name="search" placeholder="Enter your search query here">
Il n'est pas pris en charge par les anciens navigateurs, mais si vous ne ciblez que les modernes, vous devriez l'utiliser: http://caniuse.com/#feat=input-placeholder
non, vous avez besoin de $ (this) .val (""); ou $ (this) .val (''); le vider
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />