首页 文章

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

提问于
浏览
0

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

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

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

但是,默认情况下,此字段设置为“display:none”,并且永远不会像其他错误消息元素一样显示为内联 .

我不是DNN专家,我没有创建这个网站 . 我正在为客户升级它,并且不知道这些自定义字段如何工作 . 我在管理>网站设置>用户帐户设置>配置文件设置中看到自定义字段已启用 . 我还看到一个名为“Profile.ascx.Portal-0.resx”的文件,其中包含自定义字段的主文本,帮助文本和所需文本 . 它位于DesktopModules \ Admin \ Security \ App_LocalResources中 . 我不知道我还需要配置或检查哪个版本与版本5.6到7.3不同 .

谢谢你的帮助!

2 回答

  • 0

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

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

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

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

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

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

  • 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
            }       
    });
    

相关问题