2017-07-19 68 views
-1

我確實已經創建了一個MVC C#應用程序和一個ViewModel,所有的屬性都[必須]並且也創建了它的視圖,我的問題是,我需要捕獲從提交按鈕的點擊事件,以使一些驗證,所以我」決定使用jQuery這種方式捕獲點擊事件:使用jQuery中的e.preventDefault()不會讓[需要] MVC工作

$("#IngresarInfo").click(function (e) { 
      e.preventDefault(); 
      $("#idISSSBuscar").rules("remove", "required"); 
      $.ajax({ ... some code here 

,但如果我用e.preventDefault();驗證[需要]工作(沒有顯示任何錯誤消息),我想要的是首先驗證所有表單輸入已完成,然後進行驗證。

你能告訴我我的代碼有什麼問題嗎?

+1

'我想要的是首先驗證所有表單輸入已完成,然後進行驗證。「=>這是什麼意思? –

+0

'我想要的是首先驗證所有的表單輸入已經完成,然後進行驗證'所以你想在做驗證之前進行驗證...?這沒有任何意義恐怕 –

+0

@RoryMcCrossan我寫過:我需要從提交按鈕捕獲點擊事件,以便作出一些驗證,清除? –

回答

0

是的,當e.PreventDefault()被調用時,默認進程停止。即您的服務器端控制器操作默認情況下不會被調用。

從jQuery的文檔

如果此方法被調用時,事件的默認行爲將不會被觸發 。

如果您想在調用e.PreventDefault之後繼續執行控制器操作,則需要自己提交表單。

另一個問題。爲什麼要這樣做呢?如果您讓MVC對視圖模型進行其默認驗證,則可以在您的發佈操作中查找Model.IsValid,並返回包含驗證錯誤的原始視圖。

看起來你似乎在試圖模仿這種確切的行爲,但我不知道你從中獲得了什麼。

+0

謝謝,我想要這樣做,因爲一個隊友做到了,我用我的邏輯編寫了完全相同的代碼,但沒有奏效 –