Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите исправить ошибки с DOM елементами (https://javascript.ru/forum/events/32794-pomogite-ispravit-oshibki-s-dom-elementami.html)

Zim_one 30.10.2012 14:58

Помогите исправить ошибки с DOM елементами
 
<script language="JavaScript" type="text/javascript">
function kv(){
var a = document.form1.text1.value;
var b = a*a;
document.form1.text2.value=b;
}
</script>

<form name="form1">

<input type="text" name="text1">
<input tyte="text" name="text2">
<input type="button" name="subm" onClick="kv();">

</form>

так скрипт работает, но когда ставлю его в div то не могу понять как прописать путь ДОМ элементов.
Например:
<div id="main">
<form name="form1">

<input type="text" name="text1">
<input tyte="text" name="text2">
<input type="button" name="subm" onClick="kv();">

</form>
</div>

писал и так: document.getElementById(main).form1.text1.value;
и так: document.div[o].form1.text1.value;
и так: document.main.form1.text1.value;
и еще много как... Ничего не получилось. Помогите сделать все как надо. Я только начал учится.

Teol 30.10.2012 15:22

Вот твоя функция в рабочем виде (изменил переменные для быстрого тестирования в своем черновике):

function kv() {
var kv_a = document.getElementsByName('text1')[0].value ;
/*var kv_a = document.getElementsByName('form1')[0].children[0].value // не нужный Susanin-style (: */
var kv_b = kv_a*kv_a;
document.form1.text2.value = kv_b;
}


Хоть я и сам учусь, но мне кажется не стоит использовать поиск/фильтрацию элементов таким способом. (это, наверное, из разряда "слишком просто", значит где-то подстава) Для этого есть системные функции вроде: "getElementsByName" (и другие - для классов, id, по тегам) и что-то мне подсказывает, что это может считаться плохой практикой в JS.

(и у тебя ошибка во втором input в "type")

Zim_one 30.10.2012 15:28

Всем спасибо. Все получилось)


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