Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ввод/вывод данных из формы джаваскриптом (https://javascript.ru/forum/misc/30179-vvod-vyvod-dannykh-iz-formy-dzhavaskriptom.html)

PashPP 26.07.2012 23:24

Ввод/вывод данных из формы джаваскриптом
 
Здравствуйте. Как обращаться к элементам формы по айди/имени, чтоб можно было их возвращать модифицированными в поле инпут или другое?
Для примера. Есть простой счетчик
Код:

<!DOCTYPE html>
<html>
<head>
        <title>test</title>
        <meta charset="utf-8" />
        <script type="text/javascript">
 function modify_qty(val) {
    var qty = parseInt(document.getElementById("qty").value, 10);
    var new_qty = qty + val;
 
    document.getElementById("qty").value = new_qty;
    return new_qty;
}
    </script>
    <style>
 
    </style>
</head>
<body>
    <label >Quantity</label>
<input id="qty" value="0" />
<button onclick="modify_qty(-1)">-1</button>
<button onclick="modify_qty(1)">+1</button>

       
</body>
</html>

Так он работает. Но стоит занести все в форму не обращения типа document.forms["zx"]["qty"].value не document.forms.zx.qty.value не по айди не работают.
Почему так и как это решить?
Хорошего всем времени суток.

lord2kim 26.07.2012 23:30

PashPP,
<!DOCTYPE html>
<html>
<head>
	<title>test</title>
	<script type="text/javascript">
 function modify_qty(val) {
    var qty = parseInt(document.getElementById("qty").value, 10);
    var new_qty = qty + val;
   
    document.getElementById("qty").value = new_qty;
    return new_qty;
}
    </script>
    <style>
   
    </style>
</head>
<body>
<form name="form">
    <label>Quantity</label>
<input type="text" id="qty" value="0" />
<input type="button" value="-1" onClick="modify_qty(-1)">
<input type="button" value="+1" onClick="modify_qty(1)">
</form>
</body>
</html>

PashPP 26.07.2012 23:35

О. Спасибо. Наверно, я где-то ошибся в этом варианте на нервах.
А почему тогда методы специально для форм не работают?
Зачем вообще элементам форм параметр имя, если можно по айди?

lord2kim 26.07.2012 23:41

Цитата:

Сообщение от PashPP (Сообщение 191934)
О. Спасибо. Наверно, я где-то ошибся в этом варианте на нервах.
А почему тогда методы специально для форм не работают?
Зачем вообще элементам форм параметр имя, если можно по айди?

<html>
<head>
<title></title>
<script>
function abc() {
  var radio_a = document.getElementsByName("a");
  for (i=0; i<radio_a.length; i++) {
    alert(radio_a[i]);
  }
}
</script>
</head>
<body>
<form name="form">
<label><input type="radio" name="a" value="1">1</label>
<label><input type="radio" name="a" value="2">2</label>
<label><input type="radio" name="a" value="3">3</label>
<label><input type="radio" name="a" value="4">4</label>
<label><input type="radio" name="a" value="5">5</label>
<br><input type="button" value="Click" onClick="abc()">
</form>
</body>
</html>

oneguy 27.07.2012 00:45

К формам можно обращаться через document.forms[i], где i - порядковый номер формы в документе.
Атрибут name использовать в элементе <form> незачем - это его использование считается устаревшим.

bes 27.07.2012 13:27

Цитата:

Сообщение от PashPP
Зачем вообще элементам форм параметр имя, если можно по айди?

Если у элемента формы не будет задано значение атрибута name, то данные из этого элемента (имеются в виду, те элементы, данные из которых могут быть отправлены) не отправятся (если, конечно, их нужно отправить).

jobananada 12.06.2019 16:07

<form >
   <p><input id="summa" type="number" size="50" name="num" min="1" max="1000000000000000000" value="1"></p>
 </form>


Часовой пояс GMT +3, время: 03:26.