Вопрос:

Could Как я могу получить значение дани из элемента ввода с Vanilla Javascript?

javascript

53 просмотра

5 ответа

40 Репутация автора

Когда-то этот код работал со стандартным JS / HTML под IE, но теперь эта функция возвращает «undefined». Почему это не работает? В прошлый раз я проверял код, который с IE60, я знаю, 10 лет назад. Так что я предполагаю, что это связано с новыми браузерами / html5. Каков наилучший способ получить доступ к атрибуту внутри элемента HTML (в данном случае к входу), чтобы получить его значение и передать его через функцию?

<html>
 <body>
	<input type="button" tipo="MA" onclick="alert(this.tipo);">
 </body>
</html>

РЕШЕНИЕ:

Как некоторые прокомментировали, я должен привыкнуть к HTML5. Итак, что я пытался совершить, я получил это с:

<input type="button" data-tipo="MA" onclick="alert(this.dataset.tipo);">

Заранее спасибо.

Автор: Ruben Источник Размещён: 12.01.2018 09:50

Ответы (5)


1 плюс

2706 Репутация автора

Попробуй это:

 <html>
   <body>
     <input type="button" value="MA" onclick="alert(this.value);">
   </body>
</html>
Автор: Kannan K Размещён: 12.01.2018 09:53

1 плюс

4844 Репутация автора

Попробуй это :

<html>
 <body>
	<input type="button" tipo="MA" onclick="alert(this.getAttribute('tipo'));">
 </body>
</html>

Автор: Saurabh Mistry Размещён: 12.01.2018 09:55

1 плюс

169410 Репутация автора

Решение

Это не работает, потому что this.tipoвы читаете свойство HTMLInputElement, а не атрибут . Это разные вещи.

Если вы хотите использовать атрибут

this.getAttribute('tipo')

Атрибуты служат разным целям и обычно не переводятся в собственность с тем же именем. Однако некоторые атрибуты соответствуют соответствующим атрибутам. Примеры могут быть value, disabled.

Вот демонстрация того, как будет работать свойство, если вы установили его перед чтением:

const input = document.querySelector('input')
input.tipo = 'I am a property'
<input type="button" tipo="MA" onclick="alert(this.tipo);">

Автор: dfsq Размещён: 12.01.2018 09:56

2 плюса

142 Репутация автора

Ruben

если вы не хотите определять глобальную переменную и придерживаться встроенного js, вы можете сделать что-то вроде этого:

onclick="alert(this.getAttribute('tipo'))

Функция getAttribute () возвращает атрибут с определенным именем.

Также в настоящее время довольно часто используется атрибут data- *, где «*» можно заменить на любое имя, которое вы хотите:

<element data-name="Ruben">

Чтобы узнать больше об этом, я бы посоветовал вам прочитать это: https://www.w3schools.com/tags/att_global_data.asp

Надеюсь, поможет.

Автор: JOjohn Размещён: 12.01.2018 10:01

0 плюса

1542 Репутация автора

Это потому, что JavaScript не говорит на вашем языке, только какой-то английский.
Попробуй это:

<html>
 <body>
    <input type="button" tipo="MA" onclick="alert(this.type);">
 </body>
</html>
Автор: Gerard H. Pille Размещён: 12.01.2018 10:14
Вопросы из категории :
32x32