2014-10-27 4 views
2

У меня есть проблема, пожалуйста, помогите мне , когда я меняю значение на своем входе, а затем я отправляю кнопку размытия события, чтобы заблокировать отправку, поэтому мне нужно дважды щелкнуть по кнопке. Я хочу, чтобы один клик на моей кнопке выполнял действие на моем входе, а также отправьте мою кнопкуBlur event block submit button

Такая же проблема при изменении значения на моем входе, а затем я нажимаю на свой 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

Пожалуйста, [править] (http://stackoverflow.com/posts/26585311/edit) эту информацию в вопрос, а не размещать ее в качестве комментария. Комментарии не имеют форматирования, поэтому его почти невозможно прочитать. – ChrisF

ответ

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, что-то вроде этого:

<a4j:commandButton id="myHiddenButtonId" style="display:none;"> 
    <a4j:ajax render="@form" execute="@all" 
     listener="#{saisieEnquetesCtrl.contCohQuant}" 
    oncomplete="modifyVal();updateOrigineQuant();focusErrorInput(); " /> 
</a4j:commandButton> 

выше решения будет работать нормально, но знайте, что если вы нажмете на другой AJAX, ваше размытие будет срабатывать после ...