2013-12-08 57 views
-3
<form> 
<p> 
<label>Username</label> 
<input name="username" placeholder="Username" required="" type="text"> 
</p> 
</form>  

<script language="JavaScript" type="text/javascript"> 
     var username=$("#username").val(); 
</script> 

我已经阅读了很多与此问题相关的帖子,但是我还没有找到解决方案。var val()undefined javascript

我试着用萤火虫,给我:

username undefined 

问题出在哪里?

+0

没有用户名输入。除此之外,你试图引用的输入也没有'value'属性。 – Sumurai8

+0

@ Sumurai8:但它总会有一个非'undefined'的值。最初那个值是''“',但用户可能会填充其他东西。 –

+0

尽管它不在处理程序中。但我明白你的意思。 – Sumurai8

回答

2

因为您没有id"username"的元素。你有一个与name"username"。所以当你做$("#username")时(因为没有匹配的元素),jQuery返回一个空集。当您在空集上调用val()时,它将返回undefined

你可以改变你的领域有一个id

<input id="username" name="username" placeholder="Username" required="" type="text"> 

或者改变你的选择使用name

var username = $("input[name=username]").val(); 
0

#是选择了ID,但是你不您的输入上没有ID。在此

<input name="username" placeholder="Username" id="username" required="" type="text"> 

战利品: 所以,你可以添加一个ID Id Selector

0

尝试通过name属性访问元素:

$('input[name=username]').val() 

,或者如果你需要通过ID来访问,然后加入ID属性:

<input name="username" placeholder="Username" id="username" required="" type="text">