¿我怎样才能从使用Vanilla Javascript的输入元素中获得贡品的价值?

时间:2018-01-12 09:50:34

标签: javascript

很久以前,这段代码在IE下使用标准JS / HTML,但现在这个函数返回“undefined”。为什么这不起作用?上次我检查代码时,我知道10年前的IE60。所以我猜它与新浏览器/ 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);">

提前致谢。

5 个答案:

答案 0 :(得分:2)

如果您不想定义全局变量并坚持使用内联js,您可以执行以下操作:

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

getAttribute()函数返回具有特定名称的属性。

现在使用data- *属性非常普遍,其中“*”可以替换为您想要的名称:

<element data-name="Ruben">

要了解更多相关信息,我建议您阅读以下内容: https://www.w3schools.com/tags/att_global_data.asp

希望它有所帮助。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:1)

它不起作用,因为this.tipo您正在阅读HTMLInputElement的属性,而不是属性。那些是不同的东西。

如果您想要使用属性

this.getAttribute('tipo')

属性用于不同的目的,通常不会转换为具有相同名称的属性。但是,某些属性会映射到相应的属性。示例可以是valuedisabled

以下是如果您在阅读之前设置,属性如何工作的演示:

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

答案 4 :(得分:0)

这是因为JavaScript不会说您的语言,只会说某种英语 试试这个:

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