jstree 验证节点重命名,如果未验证,则回滚到旧名称

发布于 2025-01-04 08:07:18 字数 297 浏览 1 评论 0原文

在重命名 jstree 中的节点时,我想验证重命名中的特殊字符,如果找到,我想提醒用户,并回滚到旧名称。

为此,我添加了

  • 重命名上下文菜单
  • ,之后我确实与 node_rename 绑定并
  • 在绑定中重命名事件我检查 event.type === node_rename
  • 当我在 data.args[ 中获得新名称时,我能够验证新名称的特殊字符1]
  • 但在我的警报到来之前,重命名已经发生,并且我找不到撤消该操作的方法。

任何帮助表示赞赏。

while renaming a node in jstree, I wanted to validate for special characters in renaming, and if found , I wanted to alert user, and roll back to the old name.

for that I have added

  • rename context menu
  • after that I did bind with node_rename and rename event
  • in binding I check for event.type === node_rename
  • I am able to validate special characters of new name as I get new name in data.args[1]
  • but before my alert comes, rename is already taken place, and I dont find a way to undo that.

Any help is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难得心□动 2025-01-11 08:07:18

我需要绑定到 rename.jstree,而不是绑定 rename_node,然后需要使用操作回滚。

这里是绑定事件代码。

if(type === 'rename')
{
        var new_Name = data.rslt.new_name;
        var iChars = "!@#$%^&*()+=[]\\\';,/{}.-_|\":<>?";
        for (var i = 0; i < new_Name.length; i++) 
        {
            if (iChars.indexOf(new_Name.charAt(i)) != -1) 
            {
                alert ("Special characters are not allowed.");
                $.jstree.rollback(data.rlbk);
            }
        }
 }

Instead of binding rename_node, I needed to bind to rename.jstree, and then needed to use rollback of action.

Here the bind event code.

if(type === 'rename')
{
        var new_Name = data.rslt.new_name;
        var iChars = "!@#$%^&*()+=[]\\\';,/{}.-_|\":<>?";
        for (var i = 0; i < new_Name.length; i++) 
        {
            if (iChars.indexOf(new_Name.charAt(i)) != -1) 
            {
                alert ("Special characters are not allowed.");
                $.jstree.rollback(data.rlbk);
            }
        }
 }
止于盛夏 2025-01-11 08:07:18

您还可以通过rename_node来完成此操作。如果验证失败调用:

$('#yourtreeid').jstree("refresh");

You can also do it through rename_node. If validation fails call:

$('#yourtreeid').jstree("refresh");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文