在重命名 jstree 中的节点时,我想验证重命名中的特殊字符,如果找到,我想提醒用户,并回滚到旧名称。
为此我添加了
- 重命名上下文菜单
- 之后我绑定(bind)了 node_rename 和 rename 事件
- 在绑定(bind)中我检查 event.type === node_rename
- 当我在 data.args[1] 中获取新名称时,我能够验证新名称的特殊字符
- 但在我发出警报之前,重命名已经发生,而且我找不到撤消该操作的方法。
感谢任何帮助。
最佳答案
我需要绑定(bind)到 rename.jstree
,而不是绑定(bind) rename_node
,然后需要使用操作回滚。
这里是绑定(bind)事件代码。
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);
}
}
}
关于javascript - jstree 验证节点的重命名,如果未验证,则回滚到旧名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202106/