我有问题,请帮帮我 当我在输入中更改一个值然后我提交一个按钮时,事件模糊阻止了我的提交,所以我必须在按钮上单击两次。 我想在我的按钮上单击一下我的输入中的操作并提交我的按钮
当我在输入中更改值然后单击我的commandLink时出现同样的问题..我的模糊事件的操作会阻止点击我的链接
<h:inputText id="idInputQuantite" readonly="#
converter="bigDecimalConverter"
execute="@this"
styleClass="#{component.valid ? '' : 'invalidInput'}"
style="#{component.valid ? '' : 'border: medium solid red;'};cursor:hand;"
value="#{infoPiece.quantite}"
onfocus="if (this.readOnly) {this.blur();}>
<f:validator validatorId="superficieVolumeValidator" />
<f:attribute name="libTypePiece" value="#{infoPiece.libPiece}" />
<a4j:ajax event="blur" render="@form" execute="@all"
listener="#{saisieEnquetesCtrl.contCohQuant}"
oncomplete="modifyVal();updateOrigineQuant();focusErrorInput(); " />
</h:inputText>
<a4j:commandButton
rendered="#{saisieMoisModel.modeModification}"
action="#{saisieEnquetesCtrl.enregistrer}"
id="idValider"
value="Valider"
onmouseover="affichVerifPanel()"
onmouseout="hideVerifPanel();mouseOut();"
render="@form"
execute="@this"
oncomplete="saveOnglet();"
style="margin-top:20px;margin-left:300px; background:#fadadc; font-family: Arial; font-weight: bold;">
</a4j:commandButton>
<a4j:commandLink style="float: right; padding-right: 40px;"
render="@form" action="#{saisieEnquetesCtrl.clickChFerElementDebut}"
onclick=" if (checkIfSaved()) {#{rich:component('savePopupDebut')}.show();return false;}" oncomplete="initTable();" ></a4j:commandLink>
答案 0 :(得分:0)
一种解决方案是删除<a4j:ajax event="blur"
并添加更改<h:inputText
<h:inputText onblur="myFunc();".....
,而myFunc
看起来像
var myTimer;
function myFunc() {
myTimer= setTimeout(function () {
$('#myHiddenButtonId').click();
}, 500);
}
其中myHiddenButtonId
是<a4j:commandButton
的ID,如下所示:
<a4j:commandButton id="myHiddenButtonId" style="display:none;">
<a4j:ajax render="@form" execute="@all"
listener="#{saisieEnquetesCtrl.contCohQuant}"
oncomplete="modifyVal();updateOrigineQuant();focusErrorInput(); " />
</a4j:commandButton>
上述解决方案可以正常工作,但要知道如果你点击其他ajax,你的模糊会在之后发生......