문제

사용자가 현재 암호, 새 비밀번호를 입력하고 새 비밀번호를 확인할 수있는 사용자 기본 설정 페이지가 있습니다. 사용자가 양식을 제출하면 조치로 보냅니다. 문제는 양식이 제출 될 때 비밀번호 필드가 채워진다는 것입니다. 나는 그들이 지우기를 원한다. 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>
    <% } %>
도움이 되었습니까?

해결책

  • JavaScript 문제를 디버깅하려면 생성 된 HTML을 더 잘 게시하십시오.
  • JavaScript 문제를 더 쉽게 디버깅하려면 FireBug Extension과 함께 Firefox 브라우저를 사용하십시오.

편집 : 페이지가 제출 된 후 비밀번호를 지우려고합니다. 제출 페이지가 다른 페이지로 탐색 한 후 JavaScript가 그 후 DOM 요소에 영향을 미치지 않는다고 생각합니다.

다음 순서를 시도 할 수 있습니다.

  • JavaScript 변수에 사용자 이름과 비밀번호를 저장하십시오.
  • 사용자 이름과 비밀번호 값을 지우십시오.
  • 저장된 값으로 페이지에 게시하십시오.

다른 팁

비밀번호를 기억하도록 설정된 경우 암호 필드를 작성하는 브라우저가 될 수 있습니다. 나는 이런 일이 나에게 일어났다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top