Deaktivieren Sie die Schaltfläche nach dem Klicken in JQuery
Lesezeit: 5 Minuten
Benutzer3377126
Meine Schaltfläche verwendet AJAX, um Informationen zur Datenbank hinzuzufügen und den Schaltflächentext zu ändern. Ich möchte jedoch, dass die Schaltfläche nach einem Klick deaktiviert wird (andernfalls kann die Person die Informationen in der Datenbank spammen). Wie mache ich das?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
function load(recieving_id){
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
} else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("roommate_but").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET','include.inc.php?i=' + recieving_id, true);
xmlhttp.send();
}
Ist jQuery tatsächlich auf der Seite enthalten? Ich frage, weil – obwohl Sie diese Frage mit markiert haben jQuery – In Ihrem Code wird kein jQuery verwendet. Die Antworten können also stark variieren, je nachdem, ob Sie jQuery verwenden können oder nicht.
– Steve
11. Mai 2014 um 21:08 Uhr
Ja, ich verwende JQuery. Ich habe meinen ursprünglichen Beitrag bearbeitet, um den Link zu JQuery anzuzeigen. Irgendwelche Vorschläge, um die Schaltfläche nach einem Klick zu deaktivieren?
– Benutzer3377126
11. Mai 2014 um 21:11 Uhr
Bitte unterlassen Sie Verwenden Sie einfaches XHR, wenn Sie bereits jQuery verwenden. Es ist extrem hässlich, beides zu mischen.
Als ich es in der Ladefunktion hinzufügte, war die Schaltfläche immer noch anklickbar und es stoppte ihre Funktion, Dinge zur Datenbank hinzuzufügen und den Text der Schaltfläche zu ändern. Gibt es eine bestimmte Platzierung für diesen Code, um sicherzustellen, dass er mit den anderen Funktionen der Schaltflächen funktioniert?
– Benutzer3377126
11. Mai 2014 um 21:20 Uhr
Nach ajax Erfolg entfernen disabledAntwort aktualisiert
– Manoj Yadav
11. Mai 2014 um 21:26 Uhr
Ich habe die gesamte Ladefunktion durch Ihre Ladefunktion ersetzt (daher AJAX für Jquery ersetzt) und die Schaltfläche wird immer noch nicht nach einem Klick deaktiviert (immer noch anklickbar). Es ist jedoch immer noch in der Lage, dasselbe zu tun wie AJAX, zu einer anderen Seite zu gehen, etwas zu db hinzuzufügen und den Schaltflächentext zu ändern. Wenn es hilft, verwende ich einen Bootstrap-Button. Irgendwas, was ich noch tun kann?
– Benutzer3377126
11. Mai 2014 um 21:45 Uhr
Wenn Sie die Schaltfläche nach einem Klick deaktivieren möchten, entfernen Sie sie $('#roommate_but').prop('disabled', false);Antwort aktualisiert
– Manoj Yadav
11. Mai 2014 um 21:53 Uhr
Sie würden viel mehr Daumen hoch bekommen, wenn Sie diese Antwort allgemeiner für den Titel der Frage machen würden: “Schaltfläche nach dem Klicken in JQuery deaktivieren”, die in Google als Top-Ergebnis angezeigt wird. Fügen Sie Informationen zum Deaktivieren direkt in die Antwort ein, zum Beispiel /.
– Andreas
15. Dezember 2015 um 16:04 Uhr
kPlatten
Sie können dies in jquery tun, indem Sie das Attribut setzen deaktiviert auf „deaktiviert“.
Sie sollten wissen, wann Sie es verwenden müssen attr und wann zu verwenden prop. Dies sollte mit erfolgen prop. Hier können Sie mehr darüber lesen.
– Adam Merrifield
11. Mai 2014 um 21:23 Uhr
Ja, ich glaube, Adam hat recht. Als ich diesen Code ausprobierte: $(‘roommate_but’).click(function(){ $(this).attr(‘disabled’,’disabled’); }); , die Schaltfläche war immer noch nicht deaktiviert. Also muss ich nur attr auf prop ändern, oder? Irgendeine bestimmte Stelle, an der ich den Knopf platzieren kann, damit er funktioniert? Wenn es hilft, verwende ich tatsächlich einen Bootstrap-Button
– Benutzer3377126
11. Mai 2014 um 21:27 Uhr
-1 für die Verwendung von attr, obwohl .prop() gibt es schon seit jahren. Allerdings beides sollte Arbeit.
– Meister der Diebe
11. Mai 2014 um 21:27 Uhr
Notiz gemacht @PeterSmith wird aktualisiert. @ user337712 $('roommate_but') sollte sein $('#roommate_but')
– kPlatten
11. Mai 2014 um 21:34 Uhr
Und wie Sie eine Schaltfläche deaktivieren und ihre Stile beibehalten, da das Attribut “deaktiviert” häufig eine Deckkraft-CSS-Regel enthält.
Ist jQuery tatsächlich auf der Seite enthalten? Ich frage, weil – obwohl Sie diese Frage mit markiert haben
jQuery
– In Ihrem Code wird kein jQuery verwendet. Die Antworten können also stark variieren, je nachdem, ob Sie jQuery verwenden können oder nicht.– Steve
11. Mai 2014 um 21:08 Uhr
Ja, ich verwende JQuery. Ich habe meinen ursprünglichen Beitrag bearbeitet, um den Link zu JQuery anzuzeigen. Irgendwelche Vorschläge, um die Schaltfläche nach einem Klick zu deaktivieren?
– Benutzer3377126
11. Mai 2014 um 21:11 Uhr
Bitte unterlassen Sie Verwenden Sie einfaches XHR, wenn Sie bereits jQuery verwenden. Es ist extrem hässlich, beides zu mischen.
– Meister der Diebe
11. Mai 2014 um 21:27 Uhr