Как использовать getElementById для получения элементов в форме?

Мне интересно, почему в следующем сценарии комментарий 1 и комментарий 2 не работают Я знаю, что мы можем получить прямой доступ к элементу по идентификатору, не передавая "форму" однако я задаю вопрос в образовательных целях Спасибо

<!DOCTYPE html>
<html>
<head>
	<meta charset = "utf-8">
	<title>test</title>
	<script>
		function ulDisply()
		{
		//var element = document.myform.getElementsByName("name1")[0].value;//1
		//var element = document.myform.getElementsById("id1").value;//2
		//var element = document.myform.elements[0].value;//3
		var element = document.myform.d.value;//4
		document.write("you number is "+ element +"<br>");
		}
	</script>
</head>
<body>
	<form name = "myform">
		<input type = "number" name = "n" id = "d">
		<input  type = "submit" onclick = "ulDisply()">		
	</form>
</body>
</html>

Это будет имя, а не идентификатор. document.myform.n.value;

epascarello 29.05.2018 16:17

Нет ничего с name='name1' и id='id1'

Mamun 29.05.2018 16:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
67
3

Ответы 3

Комментарий 1:

var element = document.myform.getElementsByName("name1")[0].value;

не работает, потому что:

  • нет элемента с именем «name1».
  • getElementsByName определен в объекте document

Комментарий 2:

var element = document.myform.getElementsById("id1").value;

не работает, потому что:

  • правильное имя функции - getElementById, и она определена в объекте document
  • нет элемента с идентификатором "id1"

При исправлении работает:

<!DOCTYPE html>
<html>
<head>
	<meta charset = "utf-8">
	<title>test</title>
	<script>
		function ulDisply()
		{
		var element = document.getElementById("d").value;//2
    


		document.write("you number is "+ element +"<br>");
		}
	</script>
</head>
<body>
	<form name = "myform">
		<input type = "number" name = "n" id = "d">
		<input type = "button" value = "Ok" onclick = "ulDisply()">
	</form>
</body>
</html>

@Quentin getElementsByTagName определен в HTMLElement. getElementsByName - нет. Источник: developer.mozilla.org/fr/docs/Web/API/Element/…

Guillaume Georges 29.05.2018 16:36

Ты можешь использовать:

var element = document.getElementById("d").value;

Вам нужно изменить код, чтобы он был:

<!DOCTYPE html>
    <html>
    <head>
        <meta charset = "utf-8">
        <title>test</title>
        <script>
            function ulDisply()
            {
            var element = document.getElementsByName("n")[0].value;//1
            //var element = document.getElementById("d").value;//2
            //var element = document.myform.elements[0].value;//3
            //var element = document.myform.d.value;//4
            document.write("you number is "+ element +"<br>");
            }
        </script>
    </head>
    <body>
        <form name = "myform">
            <input type = "number" name = "n" id = "d">
            <input  type = "submit" onclick = "ulDisply()">     
        </form>
    </body>
    </html>

Другие вопросы по теме