2013-09-05 2 views
0

를 제출하기 전에 내가 다른 하나의 함수에서 값을 전달하십시오는 어떻게 직렬화와 나는이 두 가지 기능을 가지고있는 형태

내가 직렬화하기 전에 첫 번째 함수에 두 번째 함수에서 선택한 옵션을 통과해야
$("#form_pdetail").on("click", "#register_button", function() { 
    var detail_add = $("#form_pdetail").serialize(); 
    var request = $.ajax({ 
     type: 'POST', 
     url: "{{ path('product_detail_create') }}", 
     data: detail_add, 
     success: function() { 
      request.abort(); 
      loadCenterLayout("{{ path('product_detail_list') }}"); 
     } 
    }); 
}); 

$("#tree").dynatree({ 
    checkbox: true, 
    children: {% autoescape false %} {{ categories }} {% endautoescape %}, 
    minExpandLevel: 1, 
    selectMode: 3, 
    onSelect: function(select, node) { 
     // Get a list of all selected nodes, and convert to a key array: 
     var selKeys = $.map(node.tree.getSelectedNodes(), function(node){ 
      return node.data.key; 
     }); 
     console.log(selKeys.join(", ")); 
    }, 
    onKeydown: function(node, event) { 
     if(event.which == 32) { 
      node.toggleSelect(); 
      return false; 
     } 
    } 
}); 

detail_add 양식을 제출하면 어떻게됩니까?

+0

당신이 세계로'selKeys'을 설정하기 위해 노력했다? 그런 다음 양식을 serialize하기 전에 –

답변

1

dynatree 객체의 onSelect 이벤트에서 선택된 노드를 가져 오는 대신 트리에 대한 참조를 가져 와서 가져올 수 있습니다. dynaTree 문서에서

:

var tree = $("#tree").dynatree("getTree"); 

그 후 당신은 할 수 있어야한다 :

var selKeys = $.map(tree.getSelectedNodes(), .................. 

당신은 양식의 등록 버튼의 클릭 함수 내에서이 모든 것을 할 수 있습니다.

아마도 뭔가 등으로 :

$("#form_pdetail").on("click", "#register_button", function() { 
    var detail_add = $("#form_pdetail").serialize(); 
    var tree = $("#tree").dynatree("getTree"); 
    var selKeys = $.map(tree.getSelectedNodes(), function(node) { 
     return node.data.key; 
    } 
    detail_add.selectedItems = selKeys.join(", "); 
    var request = $.ajax({ 
     type: 'POST', 
     url: "{{ path('product_detail_create') }}", 
     data: detail_add, 
     success: function() { 
      request.abort(); 
      loadCenterLayout("{{ path('product_detail_list') }}"); 
     } 
    }); 
}); 
관련 문제