2017-07-07 7 views
-3

Ich möchte auf der HTML-Formulare Textbox "etwas" anzuzeigen dieser Wert eine JavaScript-VariableHTML Form Value = Javascript Variable

var paramvalue = "something" 
 
document.getElementById("client_id").value = paramvalue
<form action="login.php" method="post"> 
 
     <input type="hidden" name="clientID" id="client_id" value="" /> 
 
     <button>Login</button> 
 
</form>

+3

Was ist Ihre Frage? –

+0

'var textbox = document.getElementById ('client_id');', dann 'textbox.value =' paramvalue'; 'setzt den Wert, so wie Sie es getan haben. Der Eingabetyp ist auf "Versteckt" gesetzt, so dass Sie das Formularfeld nicht sehen, wenn Sie es nicht wissen. Wenn Sie möchten, dass es sichtbar ist: type = 'text'' – clearshot66

+0

Sie haben type = hidden in Ihrem Eingabetextfeld. Um die Textbox anzuzeigen, müssen Sie sie entfernen. Stellen Sie außerdem sicher, dass das Skript dem HTML-Code folgt, da Sie den Wert onload nicht festlegen. –

Antwort

-1
var textbox = document.getElementById('client_id');, 

dann

textbox.value = paramvalue; 

arbeiten.

Ihr Problem ist, Sie haben type='hidden', wo es type='text' sein sollte, weil versteckt nicht sichtbar sein wird. Sie müssen es auch so ändern, dass es onload ausführt, damit Sie den Wert beim Laden der Seite ersetzen.

<script type="text/javascript"> 
    function init(){ 
     var paramvalue = "something" 
     document.getElementById("client_id").value = paramvalue 
    } 
    body.addEventListener("load", init); 
</script> 



    <form action="login.php" method="post"> 
      <input type="text" name="clientID" id="client_id" value="" /> 
      <button>Login</button> 
    </form> 

Alternativ können Sie Ihren Code halten, input type = "text" ändern und nur das Skript unter Ihrer HTML-Code/Form bewegen, wodurch die Notwendigkeit für die JS-Funktion negieren und den Ereignis-Listener

Der Benutzer auch tun könnte:

<input type="text" name="clientID" id="client_id" value="" onload="init()" /> 
+0

Bitte erklären Sie, warum die Trennung von 'var textbox' und' textbox.value' einen Unterschied macht und warum dies nicht mit 'type =" hidden "' funktioniert. Außerdem übergibt 'init()' nicht eine Funktionsreferenz als Ereignis-Listener. – Xufox

+0

Nur um den Prozess zu zeigen. Es kann geändert werden, wenn man möchte, egal wie es funktioniert, also ist dies kein gültiges Anliegen. Zweitens fügen Sie genau einen Ereignis-Listener beim Laden der Seite für eine Funktion hinzu. – clearshot66

+0

Nein, nein, nein. Zuerst führen Sie zwei unnötige Schritte ein, die das eigentliche Problem nicht beheben, da sie nichts an der Funktionalität des Codes ändern. Zweitens ruft 'init()' _ unmittelbar die Funktion auf und übergibt 'undefined' als Ereignis-Listener. Dies ist _nicht_, wie Sie Ereignislistener zuweisen. Zumindest hast du das korrigiert. – Xufox

0

Sie das Skript nach dem setzen müssen sein sollte HTML, da das Eingabefeld bei der Ausführung noch nicht existiert, wird also ein Fehler zurückgegeben.

<form action="login.php" method="post"> 
    <input type="hidden" name="clientID" id="client_id" value="" /> 
    <button>Login</button> 
</form> 
<script type="text/javascript"> 
    var paramvalue = "something"; 
    document.getElementById("client_id").value = paramvalue; 
</script> 
+0

'id =" client_id "' ist bereits da. – Xufox

+0

Oh, lol .. habe es nicht gesehen;) Ich bin auf einem mobilen Bildschirm, also muss ich seitwärts scrollen, um zu sehen, dass> _ < –

+0

Fertig .. Ich habe es korrigiert. Die Lösung ist, das Skript nach dem HTML –