2016-01-18 40 views
-1

我有一个包含循环的暴乱标签,如下所示。这个循环在另一个暴乱循环内(可能很重要?)。升级到防暴版本2.3.0后,页面变得缓慢且无响应。发行说明指出防暴圈速度较慢但更可靠。HTML输入标签需要一个id或名字吗?

我发现,当我从输入标签中删除ID时,页面再次响应。没有id的输入,我想我会重新写onclick方法来确定哪个节点被点击了一些其他方式。

这不起作用,因为它似乎我的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> 
+1

这很可能是你在做别的事情。 – JJJ

+1

它的合法输入没有ID或名称,但这可能不是您的网页无响应的原因 –

+0

@BelowtheRadar谢谢!我把这种无动于衷的态度归结为对循环造成的变化。 – EngineerCamp

回答

0

我认为你可以绑定方法并在方法中添加你的ID或对象。如果你想找到点击的项目,你可以使用事件。

0

它是绝对合法有HTML input没有idname属性。要确定在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关键字。

但是,我有一种感觉,真正的问题是与你的暴动代码有关的其他事情。取出id属性似乎更像是一种临时解决方法,而不是真正的解决方案。

+0

感谢您的回答。我已经尝试过,虽然输入显示onclick方法检查,他们仍然没有工作(没有警报)。你的权利,这是一个解决方法。 – EngineerCamp