2013-09-28 112 views
4

我使用jQuery和AJAX响应动态创建登录表单。窗体被创建并正确显示。但是,我无法阅读表单数据。使用jQuery获取文本框的值

这是我的代码:

$(document).ready(function(){ 
    $('#proper-form').on('click', '#submit-button', function() { // loginForm is submitted 

alert ("here"); 
    var username = $('#email').attr('value'); // get username 
    var password = $('#password').attr('value'); // get password 
alert (password); 
alert (username); 

    // code for form submit using ajax 

}); 
}); 

它提醒undefined undefined两个用户名和密码。

任何人都可以帮我弄清楚这里有什么问题吗?

+0

可能重复[?我如何使用jQuery文本框的值(http://stackoverflow.com/questions/463506/how-do- i-get-the-value-of-a-textbox-using-jquery) – senthilbp

回答

9

只需使用val()函数,来获取值:

var username = $('#email').val(); 
var password = $('#password').val(); 

设置价值使用val(value)功能:

$('#email').val('some new value'); 
+1

感谢您的快速响应。工作正常。 :) –

2

您需要使用.VAL()读取输入元素的值,而不是属性

var username = $('#email').val(); 
0

这里已经有很好的答案,但我认为您应该明白为什么使用.attr()不起作用,即使值实际上是输入字段的属性。 。

当您使用 $( '#电子邮件')ATTR( '值');, 这相当于是这样的:

input.getAttribute('value'), 

这将返回 “事” 为:

<input type="text"value="something"/> 

不管是什么用户在键入。

但是,使用 $('#email').val() 相当于类似于: input.value这将反而返回用户实际键入的字段。

在这种情况下,你没有价值=“”隐式设置:你只是想在用户键入的内容

因此,使用.val()

0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){    
$("#test").click(function(){ 
//textbox    
     var first_name = $("#first_name").val(); 
     alert(first_name); 
}); 
}); 
</script> 
<div>username <input type="text" id="first_name" class="first_name" name="first_name" placeholder="type username"/> 
<a href="javascript:void(0)" id="test" class="shortc-button small blue">Get Data</a></div> 

欲了解更多详情请访问:http://www.codingprogrammer.com/tutorialdemo/jquery-tutorial/get-value-of-textbox-in-jquery-example/