创建新类型的输入类型

时间:2013-04-07 23:54:16

标签: javascript html input

我想知道是否有可能创建一种新的输入,而不是正常的数字,文本等。例如,我正在为我的实习制作一个森林火灾模型,我想尝试一件事加风是风。我想知道我是否可以做<input type='wind'/>这样的事情并定义它的外观以及它的行为方式。我可以通过其他方式做到这一点,但我也想知道是否可以做这样的事情。

由于

2 个答案:

答案 0 :(得分:5)

可用的input类型列表位于:http://www.w3.org/community/webed/wiki/HTML/Elements/input

枚举type属性(即您只能使用这些值),默认为文本。

但是,没有什么可以阻止您将class="wind"等添加到输入中并使用JavaScript来改变所有此类输入的行为。

答案 1 :(得分:0)

在实践中,没有什么能真正阻止您在HTML中编写<input type='wind'/>并为其设置样式和脚本,例如(使用jQuery)$('input[type=wind]').click(handler)。它不是有效的HTML,但这只是意味着它不符合规范;浏览器不关心这一点。他们会将元素视为普通文本输入框,因为它们无法识别属性值,因此将使用默认的type='text'。这意味着DOM节点具有text作为type属性的值,但其attributes数组(以及类似于数组的对象)仍然具有wind作为值type

所以就像@ExplosionPills所建议的那样使用<input class='wind'>,只是使用不同的属性名称,并且有额外的复杂性。无论哪种方式,回退(在禁用脚本的情况下)都是普通的文本输入框。

如果后备不相关(如果没有JavaScript,页面根本不起作用),最简单的方法是将spandiv元素与class一起使用并实现它你喜欢的方式。那么你就不必处理普通文本输入框的默认渲染和行为了;将它们擦除以支持您自己的渲染和功能可能有点棘手。