模糊事件块提交按钮

时间:2014-10-27 10:18:15

标签: jsf blur ajax4jsf

我有问题,请帮帮我 当我在输入中更改一个值然后我提交一个按钮时,事件模糊阻止了我的提交,所以我必须在按钮上单击两次。 我想在我的按钮上单击一下我的输入中的操作并提交我的按钮

当我在输入中更改值然后单击我的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> 

1 个答案:

答案 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,你的模糊会在之后发生......