2013-05-21 60 views
2

我正在開發一個asp.net mvc 3應用程序,並且遇到讓我的不顯眼JS驗證工作的問題。我問過非常類似的問題,但由於我沒有得到任何答案,但認爲我能夠更好地定義我的問題,現在我寫這個問題。使用BeginForm助手啓動客戶端驗證

尋找如何獲得客戶端驗證工作的答案我看到必須有一些代碼附加到提交按鈕的點擊事件,這將啓動驗證過程。我不是100%確定這是事實,這實際上是我的問題,但如果我是正確的,你可以幫助我加入我需要添加的JS,因此可以觸發驗證過程。

這是我的形式:

@using (Html.BeginForm("RecieveDataFromDocument", "Forms", FormMethod.Post)) 
{ 
    @Html.ValidationSummary(true) 
    <table border="1"> 
     <colgroup> 
      <col span="1" style="width: 10%;" /> 
      <col span="1" style="width: 40%;" /> 
      <col span="1" style="width: 25%;" /> 
      <col span="1" style="width: 25%;" /> 
     </colgroup> 
     @Html.Partial("_PartialHeader", Model) 
     @Html.Partial("_PartialDrawing", Model) 
     @Html.Partial("_PartialBody", Model) 
     @Html.Partial("_PartialFooter", Model) 
    </table> 
    if (ViewBag.Status == 1) 
    { 
     <button type="submit" id="submitDocument">Save</button> 
    } 
    else 
    { 
     @Html.ActionLink("Back", "Index") 
    } 
} 

,並在同一視圖的底部我有這個JS:

<div> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#submitDocument').click(function() { 
      window.alert('Hi'); 
      var test = ($("form").valid()); 
      window.alert('bye'); 
     }) 
    }); 
</script> 
</div> 

從我所測試到現在,我可以看到Hi消息但即使我評論它,我從來沒有得到bye。所以任何幫助,將不勝感激。

P.S

我有這包括在我_Layout頁:

<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery-ui-1.10.3.custom.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/plugins/jqGrid/jquery-ui-1.8.16.custom.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/PageHelpers/jqDateTimePicker.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/plugins/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/plugins/jquery.validate.js")" type="text/javascript"></script> 

,我想明確地包括:

<script src="@Url.Content("~/Scripts/plugins/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/plugins/jquery.validate.js")" type="text/javascript"></script> 

在我看來。所以這個設置不起作用。

+0

你在開發工具中看到什麼? – SLaks

+0

抱歉,延遲。我看到 - 「有效不是一個函數」 – Leron

回答

2

您需要包括你的頁面上的jQuery和jQuery驗證插件腳本。

如果您還包括ASP.Net MVC不顯眼的驗證腳本,一切都會自動發生。

編輯:您需要包含不引人注目的驗證腳本 jQuery驗證,或自動設置將無法正常工作。

+0

請參閱原始帖子的編輯,如果可能的話寫下我要包含的內容(或者如果不需要的話,可以排除) – Leron

+0

@Leron:現在你在開發工具中看到什麼? – SLaks

+0

最後它的工作原理。感謝您的支持。 – Leron

1
<div> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#submitDocument').click(function() { 
     window.alert('Hi'); 
     var test = ($("#Forms").valid()); //Here code modified. 
     window.alert('bye'); 
    }) 
}); 

+0

它似乎沒有改變什麼 – Leron

+0

「表單」不是一個ID;它是一個控制器名稱 – SLaks

1

@SLaks是正確的,在頁面的頭部包含必要的js文件,並使用瀏覽器中包含的開發人員工具(IE,Chrome或Safari)在出現問題時檢查js控制檯。

,如果你想使用一個ID爲您的形式改變開放形式命令

@using(Html.BeginForm( 「RecieveDataFromDocument」, 「表單」,FormMethod.Post)){

}

並糾正方法valid()來驗證()