web-dev-qa-db-fra.com

JQuery: zone de saisie vide onclick

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!

9
Chuck Le Butt

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()

15
James Hill

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');
        } 
    });
});
4
Tom

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() = '';
2
Vimalnath
$(this).val() = '';

devrait être

$(this).val('');

Voir .val () documentation.

2
Flash

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

1
Jarown

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;" />
0
themis