Question

J'ai une page de préférences utilisateur dans laquelle l'utilisateur peut taper son mot de passe actuel, son nouveau mot de passe et confirmer le nouveau mot de passe. Lorsque l'utilisateur soumet le formulaire, il les envoie à une action. Le problème est que, lorsque le formulaire est soumis, les champs de mot de passe restent remplis. Je veux qu'ils effacent. J'ai essayé javascript, mais lorsque j'utilise document.preferences.submit (), l'envoi n'est pas déclenché ou l'action n'est pas déclenchée, ou les deux. Voici le code:

<script language="JavaScript" type="text/javascript">
    function clearpwd() {
        document.preferences.submit();
        document.preferences.currentPassword.value = '';
        document.preferences.newPassword.value = '';
        document.preferences.confirmPassword.value = '';
    }
</script>
 <% using (Html.BeginForm("ChangePreferences", "Home", FormMethod.Post, new { id="preferences", name="preferences" })) { %>
        <div>
            <div style="text-align:left; width:500px;">
            <div class="FormLabel">User Information:</div>
            <table border="0" cellpadding="4" cellspacing="0">
                <tr>
                    <td>First Name:</td>
                    <td>
                        <%= Html.TextBox("firstName")%>
                        <%= Html.ValidationMessage("FirstName") %>
                    </td>
                </tr>
                <tr>
                    <td>Last Name:</td>
                    <td>
                        <%= Html.TextBox("lastName") %>
                        <%= Html.ValidationMessage("LastName") %>
                    </td>
                </tr>
                <tr>
                    <td>New email:</td>
                    <td>
                        <%= Html.TextBox("email")%>
                        <%= Html.ValidationMessage("Email") %>
                    </td>
                </tr>
                <tr>
                    <td>Billing Method:</td>
                    <td>
                            <%=Html.RadioButton("billingMethod", 'E', new { id = "BillingMethod_E", value = 'E' })%><label for="BillingMethod_E">Electronic</label>

                            <%=Html.RadioButton("billingMethod", 'M', new { id = "BillingMethod_M", value = 'M' })%><label for="BillingMethod_M">Mailing</label>
                    </td>
                </tr>

            </table>
            </div>
            <br /><br />

            <div style="text-align:left; width:500px;">
            <div class="FormLabel">Login and Security Information:</div>
            <table border="0" cellpadding="4" cellspacing="0">
                <tr>
                    <td>Current Password</td>
                    <td>
                        <%= Html.Password("currentPassword") %>
                        <%= Html.ValidationMessage("currentPassword") %>
                    </td>
                </tr>
                <tr>
                    <td>New password:</td>
                    <td>
                        <%= Html.Password("newPassword") %>
                        <%= Html.ValidationMessage("newPassword") %>
                    </td>
                </tr>
                <tr>
                    <td>Confirm new password:</td>
                    <td>
                        <%= Html.Password("confirmPassword") %>
                        <%= Html.ValidationMessage("confirmPassword") %>
                    </td>
                </tr>
                <tr>
                    <td>Security Question:</td>
                    <td>
                        <%= Html.TextBox("securityQuestion") %>
                        <%= Html.ValidationMessage("SecurityQuestion") %>
                    </td>
                </tr>
                <tr>
                    <td>Security Answer:</td>
                    <td>
                        <%= Html.Password("securityAnswer") %>
                        <%= Html.ValidationMessage("SecurityAnswer") %>
                    </td>
                </tr>        
            </table>
            </div>
            <br /><br />
            <table>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Change Preferences" onclick="clearpwd()" /></td>
                </tr>
            </table>
        </div>
    <% } %>
Était-ce utile?

La solution

  • Pour résoudre les problèmes de JavaScript, mieux poster le code HTML généré
  • Pour résoudre les problèmes JavaScript plus facilement, utilisez le navigateur Firefox avec Firebug Extension.

Modifier: vous essayez d'effacer le mot de passe après la soumission de la page. Après la page de soumission, la page passe à une autre page. Je pense donc que JavaScript n’affectera aucun élément DOM ultérieurement.

Vous pouvez essayer la séquence suivante.

  • Stocker le nom d'utilisateur et le mot de passe sur les variables JavaScript.
  • effacez les valeurs de nom d'utilisateur et de mot de passe.
  • Publier sur la page avec les valeurs stockées.

Autres conseils

Il se peut que votre navigateur remplisse le champ du mot de passe si vous l'avez configuré pour mémoriser votre (vos) mot (s) de passe. Cela m'est arrivé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top