HTML 输入标签是否需要 ID 或名称
Do HTML input tags require an id or name?
我有一个包含循环的防暴标签,如下所示。这个循环在另一个防暴循环内(也许很重要?升级到 riot 版本 2.3.0 后,页面变得缓慢且无响应。发行说明指出,防暴循环速度较慢,但更可靠。
我发现当我从输入标签中删除 id 时,页面再次响应。由于输入上没有id,我想我会重写onclick方法以识别以其他方式单击了哪个节点。
这不起作用,因为似乎我的点击方法没有被注册。所以我的问题:没有ID或名称的输入是否违法?还是我做错了什么?
<div class="card-action">
<div each={field in obj.fields} class="col s6" no-reorder>
<a>{ field.label }</a>
<form action='#'>
<input type="radio" id="always-{field.id}" checked={ parent.currentDisplayAlways[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Always</label>
<input type="radio" id="conditional-{field.id}" checked={ parent.currentDisplayConditional[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Conditional</label>
<input type="radio" id="never-{field.id}" checked={ parent.currentDisplayNever[field.name] } onclick={ parent.onInterestingFieldCheckboxClicked }>
<label>Never</label>
</form>
</div>
</div>
我认为您可以绑定方法并在方法中添加您的 ID 或对象。如果要查找单击的项目,可以使用事件。
没有 id
或 name
属性的 HTML input
绝对是合法的。要识别在 Javascript 中没有id
的情况下单击了哪个节点,您可以传递要调用 this
关键字的函数,该函数几乎是该元素的整个 DOM 对象,就像 document.getElementById()
检索的那样。因此,该函数如下所示:
function firedAfterClicked(el) {
alert(el.checked); //Whatever you want it to do
}
输入如下所示:
<input type="radio" checked={ parent.currentDisplayNever[field.name] } onclick="firedAfterClick(this)">
该代码在单击时调用 firedAfterClick
函数,并将输入作为 DOM 元素传递给它,由 this
关键字提供。
但是,我有一种感觉,真正的问题与您的 Riot 代码有关。对我来说,删除id
属性似乎更像是一种临时解决方法,而不是真正的解决方案。
相关文章:
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- 禁用Tab键以进行具有特定Div ID的输入
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- <输入id=“;“到期”;type=“;月份;min=“;2016-05”>如何填写“;min”;属性与当前
- 更改具有相同id的输入类型的所有值
- 如何获取具有相同id的多个输入值
- 使用getElementById设置动态ID的输入字段的样式
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- 传递来自<输入类型=“;文件“;id=“;文件“/>尽管还有一个按钮点击
- 动态添加id's到输入字段
- 为什么Bootstrap typeahead不适用于具有相同ID的输入元素
- 当一个输入与另一个输入的 ID 具有相同的名称时的含义
- jquery如何检测当前输入id
- 使用AJAX发送隐藏的ID输入字段
- 验证表单按id输入val
- 按钮更改由按钮id输入的表单文本区域
- 如何使用 id 输入类型=“文本”JavaScript 中的值设置自动 2 个十进制数
- 设置 ID 输入 (DOM) 问题
- 使用值动态更改输入id-输入类型=范围
- 选择与实习生在CSS选择器ID输入字段