おそらくIE8のバグであるという奇妙な問題がありますが、回避策を探しています。
UI の説明:
多くの行を表示するフォームがあります。ユーザーがいずれかの行に値を入力すると、基本的な検証が実行され、その横に「削除」リンクが追加されます。(目標は、入力された行を削除することです)。
問題の説明:
- ユーザーがデータを入力します
- ユーザー切り替えウィンドウ (他の IE タブに移動するか、メモ帳などの別のソフトウェアに切り替えることもできます)
IE に戻り、別の行に入る
--> ユーザーが別の場所をクリックしても、「onchange」イベントは発生しません。
これは、Chrome やその他のブラウザーで問題なく動作します (ウィンドウを切り替えても、イベントは正常に発生します)。
回避策 - 別のソフトウェアに切り替える前に、ユーザーがタブを押すか別のセルをクリックすると、「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 が表示されないことです。