2013-03-25 2 views
5

Я застрял в том, что кажется тривиальной проблемой, и я, вероятно, собираюсь пинать себя за то, что этого не произошло ... В любом случае, моя проблема в том, что я не получаю значение из текстового поля ,JQuery val(), возвращающийся пустой

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> 

Я сделал следующее if (jQuery) {.. и убедились, что JQuery будет загружен.

В предупреждении отображается пустое диалоговое окно.

Если я включил $(document).ready(); в свой скрипт, функция generateQuery не будет вызвана. Любая идея почему ..?

<script type="text/javascript"> 

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

     function generateQuery(){ 

      alert(username); 

     } 
    });  
</script> 
+0

@PSR: У меня есть упоминание об этом в примечаниях. – kaizenCoder

ответ

10

Назначить переменную внутри функции.

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

Что касается другого вопроса, «Если бы я включил $ (документ) .ready();.? В мой сценарий, функция генерировать не дозвонились Любая идея, почему ..»

Это происходит из-за объема. Вы завершаете generateQuery внутри анонимной функции при добавлении обработчика document.ready, и поэтому он не отображается вашим кодом button onclick="generateQuery()".

3

Здесь будет звонить, пока страница loading.So всякий раз, когда страница загружается текстовое поле empty.Try писать в функции.

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

Когда вы пишете в document.ready это кал; л, а страница loading.If вам нужно значение имени пользователя, то звонить в явном виде.

-1

, где вы называете функцию ????

я думаю, что вам нужно:

<script type="text/javascript"> 

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


    });  

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

     } 
</script> 
+0

Это называется заменой поля ввода. – judda

1

Значение выводится впервые. Поэтому, когда страница загружается впервые.

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

     } 
</script> 
0

Здесь вы определяете функцию, вы должны вызвать функцию, чтобы получить его запустить использовать данную generateQuery(); линии для вызова вашей функции.

Смежные вопросы