2012-02-08 1 views
2

jstree에서 노드 이름을 바꾸는 동안 이름을 바꾸는 데 특수 문자가 사용되었는지 확인하고 싶은 경우 사용자에게 경고하고 옛 이름. 내가 jstree는 노드의 이름 변경을 확인하고, 유효성을 검사하지 않으면 이전 이름으로 롤백합니다.

  • 를 추가했는지에 대한

    이름 바꾸기 컨텍스트 메뉴 내가 event.type === node_rename

  • I를 확인 바인딩에서 이벤트를
  • 을 node_rename와 결합하여 이름을 변경 않았다 후
  • data.args [1]
  • 에 새 이름이 생기면 새 이름의 특수 문자를 확인할 수 있지만 내 경고가 오기 전에 이미 이름이 바뀌 었으며이를 실행 취소 할 방법을 찾지 못했습니다.

도움을 주시면 감사하겠습니다.

답변

3

rename_node을 바인딩하는 대신 rename.jstree에 바인드해야하며 작업 롤백을 사용해야합니다.

여기에서 바인드 이벤트 코드.

if(type === 'rename') 
{ 
     var new_Name = data.rslt.new_name; 
     var iChars = "[email protected]#$%^&*()+=[]\\\';,/{}.-_|\":<>?"; 
     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); 
      } 
     } 
} 
0

rename_node을 통해서도 가능합니다. 유효성 검사가 실패한 경우 전화 :

$('#yourtreeid').jstree("refresh"); 
관련 문제