2016-01-25 75 views
0

我正在將DNN網站從版本5.06.00升級到版本7.03.02。我遵循了推薦的升級路徑,並使用定製模塊解決了所有的問題。註冊表格有一個自定義布爾字段,需要將其設置爲TRUE。這用於在升級前正確驗證,但現在不是升級後。用戶可以在不選擇「TRUE」單選按鈕的情況下提交表單。DNN - 自定義註冊表單字段在升級後不需要驗證

自定義字段正常顯示。所需的星號也顯示。的DOM甚至具有與正確的自定義所需的消息的錯誤消息元素:

<span class='dnnFormMessage dnnFormError'>[required message]</span> 

然而,該字段被設置爲「顯示:無」默認和從未顯示爲類似於其它錯誤消息元素內聯。

我不是DNN專家,我沒有創建此網站。我爲客戶升級它,並不知道這些自定義字段如何工作。我在管理員>網站設置>用戶帳戶設置>配置文件設置中看到了自定義字段。我還看到一個名爲「Profile.ascx.Portal-0.resx」的文件,其中包含自定義字段的主文本,幫助文本和所需文本。它位於DesktopModules \ Admin \ Security \ App_LocalResources中。我不知道還有什麼需要配置或檢查的版本與版本5.6到7.3不同。

感謝您的幫助!

回答

0

你似乎已經檢查了所有的要求,但是你沒有提到是否有複選框要求有效的配置文件註冊被選中。是嗎?

您可以驗證自定義字段是否標記爲必填?

您可能需要升級到當前版本的DNN 7,即7.04.02。

我建議在升級之前做一個完整的站點備份,因爲這總是正確的方式。

.resx文件不會影響功能,只是顯示的文本。

我認爲你在生產網站的測試副本上做了大量的工作。既然如此,您可能需要添加另一個自定義布爾字段,使其成爲必需,然後查看該字段是否有效。

+0

謝謝。該字段確實已選中「必需」複選框。是的,我有一個本地版本的網站,我正在進行更改。該站點已在測試和生產服務器上升級,但客戶端和我都錯過了此錯誤,直到生產部署完成。我已經添加了另一個測試布爾字段,就像您所建議的那樣,它也不能按預期工作。另外,我沒有在控制檯中發現任何JS錯誤,並且我試圖在該頁面上禁用所有額外的皮膚JS引用。 – monalisa717

+0

我的另一個問題是:我如何告訴DNN不僅需要此字段,而且您必須選擇TRUE以使其有效?也許所需的錯誤沒有顯示,因爲它默認設置爲FALSE,所以它在技術上確實包含一個值?這在DNN的舊版本中似乎沒有問題,但現在可能有所不同了? – monalisa717

+0

還有一個複選框。在管理員,網站設置下,用戶帳戶設置會查找標有「需要註冊的有效配置文件」的複選框,並確保對其進行檢查。 –

0

這不是理想的答案,但由於我無法弄清楚什麼是錯誤的DNN,我只是寫一些自定義jQuery來查找選中的單選按鈕span元素,然後顯示/隱藏該錯誤消息基於此。如果表單有多個錯誤,它只會顯示此消息。那麼如果你糾正了這個布爾值,它會顯示所有其他消息。這不是很好,但在這一點上,總比沒有好。

$(".dnnPrimaryAction").click(function (e) { 
     var $checkedRadioSpan = $(".dnnRadiobutton-checked"); 
     var $checkedRadioInput = $checkedRadioSpan.prev(); 
     var $errorMessage = $checkedRadioInput.siblings(".dnnFormError"); 

     if($checkedRadioInput.val() === "False") { 
      e.preventDefault(); 
      $errorMessage.show(); 
     } 
     else { 
      $errorMessage.hide(); 
      // continue on with other validation 
     }  
});