2013-12-08 2 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

Я попытался с Firebug и дать мне это:

username undefined 

Где проблема?

+0

нет ввода с идентификатором 'username'. Кроме того, вход, который вы пытаетесь установить, тоже не имеет атрибута 'value'. – Sumurai8

+0

@ Sumurai8: Но он всегда будет иметь значение, отличное от 'undundined '. Первоначально это значение будет '' '', но пользователь предположительно заполняет что-то еще. –

+0

Однако это не в обработчике. Но я понимаю, что вы имеете в виду. – Sumurai8

ответ

2

Поскольку у вас нет элемента с id"username". У вас есть один с name"username". Поэтому jQuery возвращает пустой набор, когда вы делаете $("#username") (так как нет соответствующих элементов). Когда вы вызываете val() на пустой набор, он возвращает undefined.

Вы можете либо изменить поле, чтобы иметь id:

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

Или изменить селектор использовать name:

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

# является селектор для ID, но вы не» t ID на вашем входе. Таким образом, можно добавить ID:

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

Лут на это: Id Selector

0

попытайтесь получить доступ к элементу по имени атрибута:

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

или, если вам нужно получить доступ по идентификатору, а затем добавить идентификатор атрибут:

<input name="username" placeholder="Username" id="username" required="" type="text"> 
Смежные вопросы