2013-03-25 14 views
5

utknąłem na czymś, co wydaje się banalnym problemem i prawdopodobnie będę się kopał za to, że tęsknię. Tak czy inaczej, mój problem polega na tym, że nie mogę uzyskać wartości z pola tekstowego .JQuery val() wracając pusty

HTML:

<form> 
     <label for="">Enter Username:</label> 
     <input id="usernameText" type="text" size="30" /> 
     &nbsp;&nbsp;<input type="button" value="Generate" onclick="generateQuery(); return  false;" /> 
</form> 

Javascript:

<script type="text/javascript"> 

     var username = $("#usernameText").val(); 

     function generateQuery(){ 

      alert(username); 

     } 
</script> 

zrobiłem następujący if (jQuery) {.. i upewnił jQuery jest załadowany.

W ostrzeżeniu wyświetla puste okno dialogowe.

Jeśli włączyłem $(document).ready(); do mojego skryptu, funkcja generateQuery nie zostanie wywołana. Każdy pomysł, dlaczego ...?

<script type="text/javascript"> 

    $(document).ready(function(){ 
     var username = $("#usernameText").val(); 

     function generateQuery(){ 

      alert(username); 

     } 
    });  
</script> 
+0

@PSR: Tak, wspomniałem o tym w notatkach. – kaizenCoder

Odpowiedz

10

przypisać zmienną wewnątrz funkcji.

function generateQuery(){ 
    var username = $("#usernameText").val(); 
    alert(username); 
} 

Co do drugiej kwestii, „Gdybym obejmowały $ (document) .ready();.? W moim skrypcie funkcja generować nie sprawdzony jakiś pomysł, dlaczego ..”

Dzieje się tak ze względu na zakres. Owiń generateQuery wewnątrz anonimowej funkcji, dodając obsługę document.ready, a zatem nie jest ona widoczna dla twojego kodu button onclick="generateQuery()".

3

Tutaj będzie wywoływać podczas ładowania strony.Kiedy strona ładuje się, pole tekstowe jest puste. Spróbuj pisać w funkcji.

function generateQuery(){ 
    var username = $("#usernameText").val(); 
    alert(username); 
} 

Kiedy piszesz w document.ready będzie CAL; l, podczas gdy strona jest loading.If trzeba wartość nazwa_użytkownika następnie wywołać jawnie.

-1

gdzie dzwonisz do funkcji ????

myślę, że trzeba:

<script type="text/javascript"> 

    $(document).ready(function(){ 
     generateQuery(); 


    });  

function generateQuery(){ 
    var username = $("#usernameText").val(); 
      alert(username); 

     } 
</script> 
+0

To się nazywa zamiana na pole wejściowe. – judda

1

Wartość jest obliczana za pierwszym razem. Więc kiedy strona zostanie załadowana po raz pierwszy.

<script type="text/javascript"> 
     function generateQuery(){ 
      var username = $("#usernameText").val(); 
      alert(username); 

     } 
</script> 
0

Tutaj definiujesz funkcję trzeba wywołać funkcję w celu uzyskania go uruchomić Użyj tej generateQuery(); linię, aby zadzwonić swoją funkcję.

Powiązane problemy