2011-09-09 92 views
0

我有2種或更多形式與不同的一個隱藏的價值,如:ASP.NET MVC 3的驗證問題

<div class="comment-body"> 
     <% using (Html.BeginForm(Model.ActionName, "Home", Model.RouteValues, FormMethod.Post, new { id = "FormAddComment", name = "FormAddComment" })) 
      { %> 
     <% = Html.ValidationSummary(false) %> 
     <fieldset> 
      <% if (Model.CommentParentID != null) 
       { 
        htmlAttributes = new { placeholder = "Add a reply...", id = "Comment" }; 
        postButtonTitle = "Post Reply"; 
      %> 
      <input type="hidden" name="CommentParentID" id="CommentParentID" value="<% = Model.CommentParentID.ToString() %>" /> 
      <%} %> 
      <% = Html.TextAreaFor(model => model.Comment, htmlAttributes)%> 
      <% = Html.ValidationMessageFor(model=>model.Comment) %> 
      <input type="submit" value="<% = postButtonTitle %>" class="small blue awesome noborder" 
       border="0" /> 
      <% if (Model.CommentParentID != null) 
       {%> 
      <a class="hide-sub-comment" href="javascript:void(0);">Cancel</a> 
      <%} %> 
     </fieldset> 
     <%} %> 
    </div> 

問題是,當我試圖驗證輸入的值,我得到了驗證消息的兩倍。當我添加文本並再次點擊「發佈」 - 一個驗證器被隱藏,但頁面仍然無效。爲什麼以及如何解決它? 謝謝

回答

0

修改答案,因爲你改變了問題。

你可以做這樣的事情

<script type="text/javascript"> 
    $(document).ready(function() {    
     $("#NotHiddenComment").change(function() { 
      var temp = $("#NotHiddenComment").val(); 
      $("#HiddenCommentID").text(temp); 
     }); 
    }); 
</script> 

這將確保這兩個字段具有相同的值,所以你沒有得到驗證錯誤。

+0

它忍不住。只顯示一個錯誤信息,而不是兩次 –

+0

,高於你說它顯示的信息兩次,現在你說它只顯示一個錯誤信息...我認爲這是你想要的。看看我鏈接的文章應該提供一些有價值的見解。 – samack

+0

對不起,我錯了。修改的問題。問題是該頁面對2個表單無效 –