我有一个奇怪的问题,这可能是 IE8 中的一个错误,但我正在寻找一种解决方法。
用户界面说明:
我有一个显示多行的表单。当用户在其中一行输入一个值时,它会执行一些基本的验证,然后它会在它旁边添加一个“删除”链接。(目标是删除输入的行)。
问题描述:
- 用户输入一些数据
- 用户切换窗口(进入任何其他 IE 选项卡,甚至切换到其他软件,如记事本)
回到IE,输入另一行
--> 当用户点击其他地方时,不会触发“onchange”事件。
这适用于 Chrome 或其他浏览器(即使我们切换窗口,该事件也会正常触发)。
解决方法 - 在切换到另一个软件之前,如果用户只是按 Tab 或单击另一个单元格,“onchange”事件会按预期工作。
有人遇到过类似的问题,或者知道另一种可以在所有浏览器中执行类似行为并工作的方法吗?
这是代码:
<rich:column>
<h:inputText id="batchSaid" value="#{currentBatch.batchSaid}" onkeypress="enableValidateitemsButton(this);"
onblur="validateCase(this,'MYVALUE');enableValidateitemsButton(this);">
<a4j:support event="onchange" process="batchAdd" action="#{itemsPageFormImpl.enableValidateBtnDisableActivateBtn(currentBatch, tRowId)}"
reRender="deleteBatchLink, deleteBatchLinkId" ajaxSingle="true"/>
</h:inputText>
</rich:column>
<rich:column id="deleteBatchLinkId">
<div align="right">
<a4j:commandLink id="deleteBatchLink" style="font-weight:bold;" value="Delete" action="#{itemsPageFormImpl.deletBatch}" reRender="batchdataTable"
rendered="#{currentBatch.showBatchRowDelBtn}" ajaxSingle="true">
<f:setPropertyActionListener target="#{itemsPageFormImpl.deleteBatchId}" value="#{currentBatch.batchId}" />
</a4j:commandLink>
</div>
</rich:column>
问题在于未显示 deleteBatchLink。