2009-03-05 60 views
0

我有一個用戶首選項頁面,用戶可以在其中輸入當前密碼,新密碼和確認新密碼。當用戶提交表單時,它將它們發送給一個操作。問題是,當表單提交時,密碼字段保持填充狀態。我希望他們清楚。我嘗試了javascript,但是當我使用document.preferences.submit()時,提交不會被觸發,或者操作未被觸發,或者兩者兼而有之。下面是代碼:密碼字段未提交在asp.net中清除mvc

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

不是一個真正的答案,但...你是否檢查過你的瀏覽器中的密碼管理器不存儲和預先填寫密碼字段? :) – muerte 2009-03-05 15:15:31

回答

1
  • 要調試JavaScript的問題,更好地後生成的HTML
  • 要調試JavaScript的問題更容易,使用Firefox瀏覽器Firebug擴展。

編輯:您正試圖在提交頁面後清除密碼。提交頁面導航到另一個頁面後,所以我認爲,JavaScript不會影響任何DOM元素。

您可以嘗試以下順序。

  • 存儲JavaScript變量的用戶名和密碼。
  • 清除用戶名和密碼值。
  • 使用存儲的值發佈到頁面。
0

它可能是你的瀏覽器填寫密碼字段,如果你有它設置爲記住你的密碼(S)。我遇到過這種情況。