So ändern Sie den Text der Schaltflächen mit Javascript

Lesezeit: 4 Minuten

Benutzer-Avatar
Mahesh

Ich habe den folgenden Code, um den Text der Schaltfläche durch Javascript-Code festzulegen, aber es funktioniert nicht, es bleibt gleich, der Text bleibt gleich.

function showFilterItem() {
    if (filterstatus == 0) {
        filterstatus = 1;
        $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().showFilterItem();
        document.getElementById("ShowButton").innerHTML = "Hide Filter";
    }
    else {
        filterstatus = 0;
        $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().hideFilterItem();
        document.getElementById("ShowButton").innerHTML = "Show filter";
    }
}

Und mein HTML-Button-Code ist

  <input  class="button black" id="ShowButton" type="button" runat="server"  value="Show Filter" onclick="showFilterItem()" />

  • Taste ändern Text und nicht Wert mit JavaScript

    – temperamentvoll

    15. Oktober 2012 um 17:53 Uhr

Benutzer-Avatar
Naveen

Wenn die HTMLElement ist input[type="button"], input[type="submit"]etc.

<input id="ShowButton" type="button" value="Show">
<input id="ShowButton" type="submit" value="Show">

ändern Sie es mit diesem Code:

document.querySelector('#ShowButton').value="Hide";

Wenn, die HTMLElement ist button[type="button"], button[type="submit"]etc:

<button id="ShowButton" type="button">Show</button>
<button id="ShowButton" type="submit">Show</button>

ändern Sie es mit einer dieser Methoden,

document.querySelector('#ShowButton').innerHTML = 'Hide';
document.querySelector('#ShowButton').innerText="Hide";
document.querySelector('#ShowButton').textContent="Hide";

Bitte beachte, dass

  • input ist ein leeres Etikett und nicht haben können innerHTML, innerText oder textContent
  • button ist ein Container-Tag und haben kann innerHTML, innerText oder textContent

Ignorieren Sie diese Antwort, wenn Sie asp.net-web-forms, asp.net-ajax und rad-grid nicht verwenden

Sie müssen verwenden value Anstatt von innerHTML.

Versuche dies.

document.getElementById("ShowButton").value= "Hide Filter";

Und da läufst du den Button an server Die ID kann im Framework verstümmelt werden. Ich versuche es

document.getElementById('<%=ShowButton.ClientID %>').value= "Hide Filter";

Ein anderer besserer Weg, dies zu tun, ist so.

Ändern Sie beim Markup Ihr ​​onclick-Attribut wie folgt. onclick="showFilterItem(this)"

Verwenden Sie es jetzt so

function showFilterItem(objButton) {
    if (filterstatus == 0) {
        filterstatus = 1;
        $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().showFilterItem();
        objButton.value = "Hide Filter";
    }
    else {
        filterstatus = 0;
        $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().hideFilterItem();
        objButton.value = "Show filter";
    }
}

  • suchte danach: document.getElementById(“ShowButton”).value= “Hide Filter”; Vielen Dank!

    – ErocM

    27. November 2012 um 21:36 Uhr

  • Diese Antwort ist veraltet und jetzt falsch, sie sollte entfernt werden.

    – Maitreya

    22. Dezember 2016 um 2:28 Uhr

  • @Maitreya Das OP verwendet <input type="button"> Also element.value ist der richtige Weg, um den angezeigten Text der Schaltfläche zu ändern. innerText, innerHTMLund textContent würde verwendet werden, wenn Sie verwenden <button></button> da es ein öffnendes und ein schließendes Tag hat.

    – Höhle Johnson

    24. Oktober 2018 um 21:08 Uhr

  • Diese Antwort ist sehr hilfreich! ich suchte document.querySelector('#ShowButton').value = 'Hide'; Für eine lange Zeit ….

    – Momori

    2. Februar 2020 um 0:27 Uhr


innerText ist die aktuell richtige Antwort darauf. Die anderen Antworten sind veraltet und falsch.

document.getElementById('ShowButton').innerText="Show filter";

innerHTML funktioniert auch und kann zum Einfügen von HTML verwendet werden.

  • Du hast Recht. Danke für die Hilfe. .value funktionierte nicht in Chrome, aber .innerText tat es.

    – Wesley

    31. Juli 2017 um 21:16 Uhr

  • Dies ist nicht die richtige Antwort für das spezifische Problem des OP. <input> hat keine innerText

    – Höhle Johnson

    9. Januar 2019 um 1:09 Uhr

Ich weiß, dass diese Frage beantwortet wurde, aber ich sehe auch, dass ein anderer Weg fehlt, den ich abdecken möchte. Es gibt mehrere Möglichkeiten, dies zu erreichen.

1- innerHTML

document.getElementById("ShowButton").innerHTML = 'Show Filter';

Darin können Sie HTML einfügen. Aber der Nachteil dieser Methode ist, es hat Cross-Site-Sicherheitsangriffe. Wenn Sie also Text hinzufügen möchten, sollten Sie dies aus Sicherheitsgründen besser vermeiden.

2- InnerText

document.getElementById("ShowButton").innerText="Show Filter";

Dies wird auch das Ergebnis erzielen, aber es ist schwer unter der Haube, da es erfordert einige Layoutsysteminformationen, wodurch die Leistung abnimmt. Im Gegensatz zu innerHTML können Sie hiermit keine HTML-Tags einfügen.
Überprüfen Sie die Leistung hier

3- Textinhalt

document.getElementById("ShowButton").textContent="Show Filter";

Dies wird auch das gleiche Ergebnis erzielen, aber es hat keine Sicherheitsprobleme wie innerHTML, da es HTML nicht wie innerText analysiert. Außerdem ist es auch leicht, wodurch die Leistung steigt.

Wenn also wie oben ein Text hinzugefügt werden muss, dann ist es besser, textContent zu verwenden.

  • Mein Button war so: Also Die Verwendung von value hat nicht funktioniert, aber die Verwendung von textContent hat den Zweck erfüllt. Danke für das Teilen!

    – Varun Verma

    16. November 2017 um 16:34 Uhr

Eine andere Lösung könnte darin bestehen, den jquery-Button-Selektor innerhalb der if else-Anweisung zu verwenden $(“#buttonId”).text(“your text”);

function showFilterItem() {
if (filterstatus == 0) {
    filterstatus = 1;
    $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().showFilterItem();
    $("#ShowButton").text("Hide Filter");
}
else {
    filterstatus = 0;
    $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().hideFilterItem();
     $("#ShowButton").text("Show Filter");
}}

Sie können umschalten filterstatus wert so

filterstatus ^= 1;

So sieht Ihre Funktion aus

function showFilterItem(objButton) {
if (filterstatus == 0) {
    $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().showFilterItem();
    objButton.value = "Hide Filter";
}
else {
    $find('<%=FileAdminRadGrid.ClientID %>').get_masterTableView().hideFilterItem();
    objButton.value = "Show filter";
}
  filterstatus ^= 1;    
}

1175400cookie-checkSo ändern Sie den Text der Schaltflächen mit Javascript

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy