2014-10-31 7 views
0

яваскриптаНе удается получить значение текстового поля с помощью JQuery

<script> 
    jQuery(function ($) {         
     var userName = jQuery("#userName").val(); 

     $('#btnsubmit').click(function() { 
      alert(userName); 

     }); 
    }); 
</script> 

HTML

<div class="contact"> 
    <div class="contact-form"> 
     <h2>Check Out</h2> 
     <div> 
      <span><label>Name</label></span> 
      <span><input name="userName" type="text" class="textbox" id="userName"></span> 
     </div> 
    </div> 
    <div class="clear"></div> 
</div> 

Я не могу получить значение текстового поля. Когда я нажимаю кнопку, она всегда пуста. Пожалуйста, помогите мне в значении текстового поля для использования с ajax.

+0

+1, по крайней мере, используя комбинацию ярлыка jQuery DOM, готового с локально ограниченным '$'. Я не вижу, чтобы многие другие использовали его :) –

ответ

3

Вы получаете имя пользователя один раз в момент загрузки страницы, прежде чем регистрировать обработчик кликов, а затем никогда не получите его снова.

Вам необходимо получить значение fresh внутри обработчика кликов.

jQuery(function ($) {         

     $('#btnsubmit').click(function() { 
      var userName = $("#userName").val(); 
      alert(userName); 

     }); 
    }); 

Обратите внимание, вы обзорные локальный $, поэтому используйте его вместо jQueryвнутри готового обработчика DOM :)

+0

Спасибо TrueBlueAussie, я сделал это –

0

Попробуйте это:

<script> 
    jQuery(function($) { 
     $('#btnsubmit').click(function() { 
      alert($("#userName").val()); 
     }); 
    }); 
</script> 
+1

Любые конкретные причины, по которым вы заменили готовый обработчик быстрого доступа DOM с расширенной '$' с более старой версией? У них была правильная часть. –

+0

Я умоляю невежество, так как я не знал о «новой» версии. У вас есть ссылка или быстрое объяснение? –

+1

Взгляните на этот: http://api.jquery.com/jQuery/#jQuery3 –

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