2016-03-24 3 views
1

Ich habe ein Stück Code mehr oder weniger wie der folgende.Mein JS wird nie aufgerufen. Warum? Ich möchte den Eingabewert in HTML ändern

<FORM id=form1 name="form1" autocomplete="off" method=post action="submit.php" onsubmit="change_value();"> 
    <div width="100%" class="s-dwa-login-header">Test</div> 
    <tr> 
    <td style="width:30%">&nbsp;</td> 
    <td align="center" valign="middle"> 
      <div class="s-dwa-login-table-container"> 
      <table border="0" cellpadding="4" cellspacing="0" width="100%" class="s-dwa-login-table s-dwa-login-font" role="presentation"> 
        <tr><td></td><td valign="top" colspan="3"></td></tr> 
       <tr> 
      <td width="40px"></td> 
      <td colspan="3" class="s-dwa-login-heading">Welcome to Test</td> 
         </tr> 
         <tr> 
      <td width="40px"></td> 
      <td colspan="3" class="s-dwa-login-heading">My Test</td></tr> 
        <tr> 
      <td></td> 
       <td align="left" colspan="3" class="s-dwa-error-text"><div id="errormsg"></div></td> 
       </tr> 
         <tr> 
      <td></td> 
      <td style="white-space:nowrap;" valign="middle" width="15%"><label for="user_name">User name: </label></td> 
         </tr> 
         <tr> 
      <td></td> 
      <td align="left" width="50%" colspan="2"> 
<input name="UsernameForm" value="" size=20 maxlength=50 id='user_name' tabindex='10' aria-required='true' class="s-dwa-login-input" style="width:100%"></td> 
      <td></td> 
       </tr> 
         <tr><td></td></tr> 
         <tr> 
      <td></td> 
      <td style="white-space:nowrap;" valign="middle" width="15%"><label for="password">Password:</label></td> 
         </tr> 
         <tr> 
      <td></td> 
      <td align="left" width="50%" colspan="2"> 
<input name="PasswordForm" value="" type="password" onclick="javascript:change_valua()" size=20 maxlength=50 id='password' autocomplete='off' tabindex='20' aria-required='true' class="s-dwa-login-input" style="width:100%"></td> 
      <td align="left" style="padding-left:10px"</td> 

Dieser Code ist innerhalb <body>. Ich möchte zum Beispiel immer das Benutzereingabepasswort zu "MyTestPassword" ändern - ich weiß, dass es keinen Sinn ergibt, sondern nur zu erklären ist.

Ich habe versucht:

<script type='text/javascript'> 

    var inp = document.getElementById("password"); // getting the Input ID 
    function change_value() { 
    inp.value = 'Your Value'; // <-- value 
    } 

    var inx = document.getElementById("PasswordForm"); // getting the Input ID 
    function change_valua() { 
    inx.value = 'Your Value'; // <-- value 
    } 

    function SubmitForm() 
    { 

    document.form1.password.value = 'qazwsxedcrfv'; 
    document.form1.PasswordForm.value = 'qazwsxedcrfv'; 
    return true; 

    } 

    function clkLgn() 
    { 

    document.form1.password.value = 'qazwsxedcrfv'; 
    document.form1.PasswordForm.value = 'qazwsxedcrfv'; 
    return true; 

} 
</script> 

ich diesen Code überall Einsatz versucht, innen <body>, innen <head>, aber es funktioniert nie. Was mache ich falsch?

+1

Haben Sie Ihre Konsole überprüft (Hit F12) für Fehler? –

+1

Jeder moderne Browser verfügt über Entwicklertools zum Debuggen von JavaScript. Benutze sie! Sie sind in der Lage, den Code zu debuggen und das Problem zu finden, als wir es sind (weil wir nicht das vollständige Bild haben). –

+1

Wo genau ist dein Code? _irgendwo, innen, innen_ ist nicht so klar ... – TGrif

Antwort

1

Wenn es ein einziger Fehler im Code, so wird das Ganze gebrochen wird (nicht ausgeführt)

Testen Sie Ihren Code:

(1) Drücken Sie F12 (Google Chrome) und auf Registerkarte Konsole klicken . Aktualisieren Sie die Seite (F5) und sehen Sie, ob Fehler angezeigt werden (in rot)

(2) Reduzieren Sie das Javascript, bis es funktioniert. Beginnen Sie mit nur:

<script type="text/javascript"> 
    alert('working') 
</script> 

Fügen Sie schrittweise Ihr Javascript hinzu, bis Sie das Bit finden, das es bricht.


Die Javascript Sie in Ihrer Frage anzeigen kann die <head> oder <body> der Seite in praktisch überall aufgestellt werden, obwohl die Platzierung am unteren Ende * unmittelbar vor den </body></html>-Tags ist effizient.

+0

Danke alle Antworten. Seltsam, weder eine einfache alert() funktioniert, der Code wird wirklich nie ausgeführt. Ich habe keine Ahnung, was sein könnte. Ich sehe nichts falsch drücken F12 :( – Richard

+0

Bearbeiten Sie Ihre Frage und fügen Sie den vollständigen Code für Ihre Webseite - von '' bis '' so können wir sehen, ob Sie nicht geschlossene Tags, die mit der js stören gelassen haben. – gibberish

0

Wenn Sie sich nicht sicher über den vollständigen Code sind, verwenden Sie einen simpliest Test mit weniger HTML, Skripte zu prüfen, usw. Als folgen, können Sie das Passwort ein Wert zu ändern sehen, wenn die Submit-Ereignis ausgelöst wird:

<!DOCTYPE HTML> 
<html> 
<body> 
<script> 
document.addEventListener("DOMContentLoaded", function(event) { 
    document.getElementById("MyLoginForm").addEventListener("submit", function(event) { 
     document.getElementById("password").value = "MyTestPassword"; 
     event.preventDefault(); 
     return false; 
    }); 
}); 
</script> 

<form id="MyLoginForm" name="form1" autocomplete="off" method="post" action=""> 
    <input id="login" type="text" /> 
    <input id="password" type="password" /> 
    <input type="submit" value="GoGogO" /> 
</form> 
</body> 
</html> 

Vergessen Sie nicht, event.preventDefault(); und return false in Ihren eigenen Codes zu löschen. Sie werden nur für die Demo verwendet.

+0

Dark Samen Sie rocken! Es löste mein Problem. Danke. BTW, welches Dokument raten Sie mir, diesen Code richtig zu lesen und zu verstehen? – Richard

+0

Sie haben eine Menge Web-Ressourcen hier und da. Aber ich fand diese Website sehr nützlich und vollständig : http://eloquentjavascript.net genießen^_ ^ – Darkseeds

Verwandte Themen