2013-04-09 5 views
-2

Мне нужно получить данные от FORM. Моя форма:Получить данные из ФОРМЫ в javascript

<form action="" id="test"> 
    <h2>Data</h2> 
    <label for="">Name</label> 
    <input type="text" name="name"> 
    <label for="">address</label> 
    <input type="text" name="address"> 
    <label for="">phone</label> 
    <input type="text" name="phone"> 
    <input type="button" onclick="xd()" value="click here"> 
</form> 

И для этого я использовал этот яваскрипт команды:

<script type="text/javascript"> 
function xd(){ 
//var x=document.forms["test"].getElementsByTagName("address") or 
var x=document.forms["test"].getElementsByTagName("address").value 
document.write(x); 
} 
</script> 

Но это не работает. Как это сделать легко.

+5

У вас нет метки «адрес» в вашем примере. –

+0

так, как я могу получить входные данные? –

ответ

1

Вы, кажется, ориентации элемента по его name атрибут (адрес), а не его атрибут tagName.

.getElementsByTagName находит все элементы контейнера, которые имеют специфическую tagName ... означая tagName для <a href="#">asdf</a> элемента «а».

Я хотел бы использовать:

<script type="text/javascript"> 
    function xd(){ 
     var inputs = document.forms["test"].getElementsByTagName("input"); 
     for (var i = 0 ; i < inputs.length; i++) { 
      if (inputs[i].name === "address") { 
       // `inputs[i]` is the element with the name "address" 
      } 
     } 
    } 
</script> 

Вы должны перебрать результаты и сравнить соответствующие элементы name атрибут против того, что вы хотите ... „адрес“.

Конечно, другой вариант заключается в использовании getElementsByName("address"), как:

var address = document.forms["test"].getElementsByName("address"); 
if (address.length > 0) { 
    // `address[0]` is the element with the name "address" 
} 

И последний вариант заключается в использовании querySelectorAll('input[name="address"]'), как:

var address = document.forms["test"].querySelectorAll('[name="address"]'); 
if (address.length > 0) { 
    // `address[0]` is the element with the name "address" 
} 
+0

Я попробовал, но показывая '[object HTMLInputElement]' все время. не знаю почему. –

+1

o ya, понял. Мне нужно добавить '.value'. Благодарю. –

0

У вас нет тегов «адрес» .Instead имени поместить id.It легко для и

<input type="text" name="address" id="addressId"> 
var x=document.forms["test"].getElementsById("addressId").value 

или использовать

var inputs = document.forms["test"].getElementsByTagName("input"); 

for (var i = 0 ; i < inputs.length; i++) { 
      if (inputs[i].name === "address") { 
       // `inputs[i]` is the element with the name "address" 
      } 
     } 
0

ли вы имеете в виду getElementsByName("address")[0]?

+0

Мне просто нужно получить данные. Я новичок в javascript. –

+0

Вы имеете в виду текст в текстовом поле ''? Изменится '.getElementsByTagName (« адрес »)' на '.getElementsByName (« адрес ») [0]'. – TwiNight

+0

Я сделал это. безрезультатно. –

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