14
A
回答
15
你有答案嗎?如果不是,這裏是一個出現在jstree google groups
function submitMe(){ var checked_ids = []; $("#server_tree").jstree("get_checked",null,true).each (function() { checked_ids.push(this.id); }); doStuff(checked_ids);
3
的建議從谷歌集團的解決方案卻沒有對部分檢查工作的節點,在我的情況。我不得不離開get_checked,並執行以下操作以獲得完全選定和部分選定的節點。
$(".sector-tree").find(".jstree-undetermined").each(function(i,element){
checked_ids.push($(element).attr("id"));
if ($(this).find(".jstree-undetermined").length == 0) {
$(this).find(".jstree-checked").each(function(i, element){
checked_ids.push({$(element).attr("id"));
});
}
});
// collect the rest of the checked nodes that exist under checked parents
$(".sector-tree").find(".jstree-checked").each(function(i, element){ //also includes the ones below 'undetermined' parent
var selectedElement = $(element).attr("id");
if (hasItem(selectedElement, checked_ids) < 0) {
checked_ids.push(selectedElement);
}
});
3
隨着jQuery
,你可以簡單地做:
$('.jstree-checked,.jstree-undetermined').each(function(){
var rawCheckedID = $(this).find('a').attr('id');
});
這將得到不確定的,在同一時間檢查。上面的soumya解決方案可能更有效率。
12
與Jstree合作的每個人都可能會遇到以下問題:如何在表單提交中獲取Jstree的checked IDs?這裏是解決方案:
function submitMe() {
var checked_ids = [];
$('#your-tree-id').jstree("get_checked",null,true).each(function(){
checked_ids.push(this.id);
});
//setting to hidden field
document.getElementById('jsfields').value = checked_ids.join(",");
}
現在,我們把它在一個隱藏字段:
<input type="hidden" name="jsfields" id="jsfields" value="" />
0
//click button show nodes checked
$(document).on('click','#showme',function() {
var checked_ids = [];
var checked_ids_meta = [];
$('#demo_0').jstree("get_checked",null,true).each(function(i, e){
checked_ids.push($(this).data("param")); // json metadata
checked_ids_meta.push($(this).attr("href")); // json attr
});
console.log(checked_ids)
console.log(checked_ids_meta)
});
23
在過去的版本(3.0),該API被改變。
如果你需要選擇的ID只是陣列(像在這個節點的例子),現在是很容易的:
var selectedElmsIds = $('#tree').jstree("get_selected");
如果您需要遍歷選定的元素,你只需要通過額外的「真實」參數。
var selectedElmsIds = [];
var selectedElms = $('#tree').jstree("get_selected", true);
$.each(selectedElms, function() {
selectedElmsIds.push(this.id);
});
+0
對我來說,在3.3.4上,我需要使用get_checked,而不是get_selected。 – chip 2017-11-20 16:01:45
0
var selectedElmsIds = [];
$("#jstree2").find("li").each(function(i, element) { //also includes the ones below 'undetermined' parent
if ($(this).attr("aria-selected") == "true") {
selectedElmsIds.push($(this).attr('id'));
}
});
console.log(selectedElmsIds);
0
這是我沒有:
function getSelectedItems()
{
var checked_ids = [];
checkedNodes = $("#MyTree").jstree("get_checked", null, true);
for(var i = 0; i < checkedNodes.length; i++)
{
var id = $(checkedNodes[i].outerHTML)[0].id;
checked_ids.push(id);
}
// Do whatever you want with the checked_ids
}
這會給你的所有選擇的節點及其子節點和葉子的陣列;以及在其他節點下選擇的單個葉子。
0
$(document).ready(function(){
var jsfields = $('#myTree').jstree('get_selected');
$('.jsfields').val(JSON.stringify([jsfields]));
})
<input type="hidden" class="jsfields" value=""/>
變化$('#myTree')
到你的價值相應的樹,這是最好的Ajax調用爲我工作。可能需要稍微修改以填充簡單表單的輸入字段。
0
您可以使用此:
var result = $('#your_tree').jstree('get_selected');
相關問題
- 1. 使用ajax提交獲取檢查值
- 2. 使用條件檢查表單提交?
- 3. 使用jquery檢查表單提交?
- 4. 獲取提交的表單值
- 5. 在提交表單前檢查值
- 6. 類似值檢查表單提交
- 7. 使用JQuery檢查表單提交時的默認值
- 8. JSP - 檢查表單提交
- 9. 從提交表單中獲取值 - jquery
- 10. 獲取價值,對錶單提交
- 11. 試圖從使用javascript自我提交表單中獲取值
- 12. 從表單提交使用Vue獲取輸入字段值
- 13. 獲取檢查複選框的值和表單輸入值使用jquery ajax提交
- 14. 檢查之前提交表單 - JavaScript的
- 15. 檢查隱藏的表單輸入對錶價值提交
- 16. 通過單擊按鈕獲取表單的值?無提交
- 17. 使用Java提交表單
- 18. 在提交之前檢查jQuery驗證的表單提交
- 19. 使用urllib提交表單
- 20. 如何獲取提交表單的slu??
- 21. 獲取表單提交的結果
- 22. 提交表單時獲取選擇列表的值 - Drupal
- 23. 在提交表單後立即獲取MySQL表的值
- 24. php檢查表單提交url
- 25. jQuery表單提交參數檢查
- 26. POST不檢查按鈕表單提交
- 27. 提交表單時自動檢查checbox
- 28. Plone:檢查表單是否已提交
- 29. HTML表單提交按鈕檢查
- 30. 提交表單後jQuery檢查問題
喜,所以this.id指的是什麼exactely?以及如果我想要獲取標籤的文本呢?謝謝。 – 2013-04-02 10:32:04
我明白了:)它是指標籤li的id。 – 2013-04-02 10:35:49
+1瞭解:) – 2013-04-02 16:23:49