Поля пароля не очищаются при отправке в asp.net mvc - PullRequest
0 голосов
/ 05 марта 2009

У меня есть страница настроек пользователя, на которой пользователь может ввести свой текущий пароль, новый пароль и подтвердить новый пароль. Когда пользователь отправляет форму, он отправляет их в действие. Проблема в том, что при отправке формы поля пароля остаются заполненными. Я хочу, чтобы они очистились. Я попытался javascript, но когда я использую document.preferences.submit (), отправка не запускается, или действие не запускается, или оба. Вот код:

<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>
    <% } %>

Ответы [ 2 ]

1 голос
/ 05 марта 2009
  • Для отладки проблем JavaScript, лучше отправьте сгенерированный HTML
  • Чтобы облегчить отладку проблем JavaScript, используйте браузер Firefox с расширением Firebug.

Редактировать: вы пытаетесь очистить пароль после отправки страницы. После того, как страница отправки перейдет на другую страницу, я думаю, что JavaScript не повлияет на элементы DOM после этого.

Вы можете попробовать следующую последовательность действий.

  • Хранить имя пользователя и пароль в переменных JavaScript.
  • очистить имя пользователя и пароль.
  • Опубликовать на странице с сохраненными значениями.
0 голосов
/ 05 марта 2009

Ваш браузер может заполнить поле пароля, если он настроен на запоминание вашего пароля (паролей). У меня было такое со мной.

...