2017-01-13 4 views
0

Ich möchte diesen Button dieses Verhalten haben.Wie mache ich dieses Button-Verhalten mit reinem Javascript?

  • Clicked
  • Disabled die Schaltfläche
  • Tun Sie etwas
  • Aktiviert die Schaltfläche
  • Benachrichtigungs Erfolg Text.

Das Skript sollte Inline sein. Dies ist mein aktuelles Schaltflächenskript.

<button type="button" onclick="this.disabled=true;savemain();this.disabled=false" class="btn btn-success">Simpan</button> 
+0

Hinweis: Wenn "Etwas tun" asynchron ist, aktiviert das Inline-Skript die Schaltfläche, bevor der asynchrone Code abgeschlossen wird. Dies kann für Sie möglicherweise kein Problem darstellen. –

+0

Es ist AJAX-Skript – Shota

+0

Sie müssen Ihren Code überdenken. 'savemain' ist asynchron, daher wird die Schaltfläche zu früh aktiviert. Wenn 'savemain' einen Fehler hat (was in der Antwort unten auf Ihren Kommentar hindeutet), ist die Schaltfläche möglicherweise gar nicht aktiviert - überprüfen Sie Ihre Entwickler-Tools-Konsole auf Fehler –

Antwort

0

Mit Inline-Javascript

<button type="button" onclick="this.disabled=true;savemain();this.disabled=false;alert('success');" class="btn btn-success">Simpan</button> 

function savemain(){ 
 
\t console.log('doing stuff'); 
 
}
<button type="button" onclick="this.disabled=true;savemain();this.disabled=false;alert('success');" class="btn btn-success">Simpan</button>

Oder stattdessen eine addEventListener verwenden und es sollte den Trick tun.

document.getElementById('buttonId').addEventListener('click', function(event){ 
    this.disabled = true; 
    savemain(); 
    this.disabled = false; 
    alert('success'); 
}, false); 

Ich empfehle nicht wirklich Inline-JavaScript.

+0

Wie man es innerhalb der Taste inline macht? – Shota

+0

fügen Sie die 'alert ('Erfolg');' zu Ihrem Inline-Code - scheint offensichtlich –

+0

ja, genau @JaromandaX – kevguy

1

Dieser Ansatz wird als schlechte Praxis angesehen. Es ist besser, herkömmliche DOM Event-Handler oder DOM Level 2 Event Listener zu verwenden.

Verwandte Themen