【问题标题】:jstree validate renaming of node, and if not validated , roll back to old namejstree 验证节点重命名,如果没有验证,则回滚到旧名称
【发布时间】:2012-02-08 21:54:32
【问题描述】:

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

为此我添加了

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

感谢任何帮助。

【问题讨论】:

    标签: javascript validation contextmenu rename jstree


    【解决方案1】:

    我需要绑定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);
                }
            }
     }
    

    【讨论】:

      【解决方案2】:

      您也可以通过rename_node 进行操作。如果验证失败调用:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多