DNN - 自定义注册表单字段在升级后无法验证是否必需

时间:2016-01-25 20:32:52

标签: dotnetnuke dotnetnuke-7

我正在将DNN站点从5.06.00版升级到版本7.03.02。我按照推荐的升级路径,使用自定义模块解决了所有问题。注册表单有一个自定义布尔字段,需要将其设置为TRUE。这用于验证正确的预升级,但现在它不是升级后的。用户可以在不选择" TRUE"单选按钮。

自定义字段正常显示。所需的星号也在显示。 DOM甚至有一个错误消息元素,其中包含正确的自定义消息:

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

但是,此字段设置为&#34; display:none&#34;默认情况下,永远不会像其他错误消息元素一样显示为内联。

我不是DNN专家,我没有创建这个网站。我正在为客户升级它,并且对这些自定义字段的工作方式一无所知。我在Admin&gt;中看到自定义字段已启用网站设置&gt;用户帐户设置&gt;档案设置。我还看到一个名为&#34; Profile.ascx.Portal-0.resx&#34;的文件。包含自定义字段的主文本,帮助文本和所需文本。它位于DesktopModules \ Admin \ Security \ App_LocalResources中。我不知道还需要配置或检查哪些内容与版本5.6到7.3不同。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您似乎已经检查了所有要求,但是您没有提及是否选中了要求注册的有效配置文件的复选框。是吗?

您是否可以验证自定义字段是否已标记为必填?

升级到当前版本的DNN 7(7.04.02)可能值得您花些时间。

我建议您在升级之前进行完整的网站备份,因为这始终是正确的方法。

.resx文件不会影响功能,只会影响显示的文本。

我假设你在生产网站的测试副本上做了很多这方面的工作。在这种情况下,您可能希望添加另一个自定义布尔字段,使其成为必需项并查看该字段是否有效。

答案 1 :(得分:0)

这不是理想的答案,但由于我无法弄清楚DNN的错误,我只是编写一些自定义的jQuery来查找已检查的单选按钮范围元素,然后基于此显示/隐藏该错误消息。如果表单有多个错误,它只会显示此消息。然后,如果您更正了该布尔值,它将显示所有其他消息。它并不好,但在这一点上它总比没有好。

$(".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
        }       
});

答案 2 :(得分:0)

我遇到了同样的问题。似乎没有为第一个表单项显示错误消息,因为没有足够的位置显示该错误消息。

在表格上方添加标题(h2)后,它工作正常。

有关更多信息,请参见DNN社区论坛中的Validator errormessage is not displayed