2017-11-21 2 views
0

So habe ich ein Formular mit mehreren Schaltflächen, die jeweils eine Anforderung Zuordnung in einem Controller haben.Make-Button Readonly nach dem Klicken auf

Also ich möchte doppelte Einreichung des Formulars zu stoppen, aber ich kann die Schaltfläche nicht nach dem Klicken deaktivieren, da der Controller nicht die Informationen erhalten kann, die es benötigt, um zu wissen, was zu tun ist. Dies ist der Fehler, den ich bekommen:

org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "update" OR "verify" OR "reject" OR "updateCard" OR "approve" OR "withdraw" OR "updateStatusToReject" OR "updateStatusToApprove" not met for actual request parameters: 

So fühle ich den Knopf machen nur lesbar, nachdem dieses Problem beheben würde klicken.

Ich habe das bisher versucht, aber es erlaubt immer noch die doppelte Einreichung.

$('.sendButton').click(function(){ 
     $(this).prop('readonly', true); 
    }); 



<c:if test="${requestForm.status == 'R'}"> 
       <input type="submit" name="updateStatusToApprove" value="Update To Approved" tabindex="7" 
         class="sendButton" id="appealA"/> 

      </c:if> 
      <c:if test="${requestForm.status == 'A' || requestForm.status == 'AA'}"> 
       <input type="submit" name="updateStatusToReject" value="Update To Rejected" tabindex="8" 
         class="sendButton" id="appealR"/> 

Irgendwelche Ideen, wie man die doppelte Vorlage stoppt, ohne die Taste tatsächlich zu deaktivieren.

+0

Ich denke, read-only bedeutet, dass Sie Knopf zu deaktivieren, und Sie können dies auch durch die Einschränkung der Abgabe tun von Ihr Anruf, bis Ihre vorherige Anfrage nicht erfüllt wird. –

+0

Oder Sie können den Eingabe-Typ als Schaltfläche beibehalten, statt Submit, und einen Handler zuweisen, der nur einmal ausgeführt wird. – gurvinder372

Antwort

4

Machen Sie Ihre Eingang von Typbutton und weisen einen click-Handler, der nur einmal one

$('.sendButton').one("click", function(){ 
 
    //submit the form 
 
    $(this).closest('form').submit(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" name="updateStatusToReject" value="Update To Rejected" tabindex="8" class="sendButton" id="appealR"/>

+0

Danke für die Antwort, aber das Ändern der Eingabe in eine Schaltfläche gab mir den gleichen Fehler wie oben aufgeführt. Aber ich nahm Ihre Lösung und behielt sie einfach als eine Eingabe und formte sie als Knopf. Jetzt funktioniert es Danke. – Blawless

0

A Nur-Lese- Element ist einfach nicht editierbar execute verwenden, sondern bekommt gesendet, wenn das entsprechende Formular einreicht. Dagegen ist das deaktivierte -Element nicht bearbeitbar und wird nicht beim Senden gesendet. Wenn Sie mit jquery Version 1.6 +, dann

$('.sendButton').click(function(){ 
     $(this).prop('disabled', true); 
    }); 

oder sonst

$('.sendButton').click(function(){ 
     $(this).attr('disabled','disabled');` 
    }); 
Verwandte Themen