2010-09-06 77 views
0

我剛剛開始使用JQuery和Javascript,並調整嵌套複選框輸入以利用jstree複選框行爲。在意識到每個項目必須是由jstree代碼識別的錨標記之後,我現在不確定如何從POST表單提交項目中生成值。以前他們是複選框輸入,我希望能夠以這種方式保留它們,以便在JavaScript關閉時表單仍然可以正常工作。在錨標記中包裝輸入會導致每個項目有兩個複選框,一個是由JStree控制的,另一個忽略。我認爲這不是要走的路。從JStree複選框列表創建HTML帖子表單的值

任何有關如何實現這一目標的建議將受到感謝。

我啓動JStree用下面的配置代碼 -

$(document).ready(function() 
{ 
    $('.nested-category').jstree({ 
     ui: { theme_name : "checkbox" }, 
     plugins : ["checkbox", "themes", "html_data", "ui" ] 
    }); 
} 
); 

下面是其中JStree代碼的效果,但不能提交值形式的簡化版本。

<form method="post" action=""> 

<div class="nested-category"> 

<ul class=""> 
    <li><a href="#">group1</a> 
     <ul> 
      <li><a href="#">subgroup1</a> 
       <ul> 
        <li><a href="#">item1</a></li> 
        <li><a href="#">item2</a></li> 
        <li><a href="#">item3</a></li> 
       </ul> 
      </li> 
      <li><a href="#">subgroup2</a> 
       <ul> 
        <li><a href="#">item4</a></li> 
        <li><a href="#">item5</a></li> 
        <li><a href="#">item6</a></li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
    <li><a href="#">group2</a> 
     <ul> 
      <li><a href="#">subgroup3</a> 
       <ul> 
        <li><a href="#">item7</a></li> 
        <li><a href="#">item8</a></li> 
        <li><a href="#">item9</a></li> 
       </ul> 
      </li> 
      <li><a href="#">subgroup4</a> 
       <ul> 
        <li><a href="#">item10</a></li> 
        <li><a href="#">item11</a></li> 
        <li><a href="#">item12</a></li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 
</div> 

<input class="form-submit" type="submit" name="submit" value="submit"> 
</form> 

回答

1

我通過將每個錨標記,它是由一個位隱藏在裏面輸入元素解決問題的額外Javascript。當jsTree生成的輸入被檢查時,jsTree腳本中的一些額外的行添加了'checked'到輸入,反之亦然,如果輸入被返回到被檢查的表單。如果Javascript被關閉,輸入複選框在HTML表單中正常工作。如果有人想進一步解釋,我可以發佈示例以及對jsTree所做的更改。

我不懷疑這是一個破解的方式來解決這個問題,但這就是我目前在web開發狀態下的狀態!

0

個人而言,我會使用AJAX。 $.post

給錨的ID,並在jsTree我敢肯定有是獲取所有選定的方法ID的

+0

是的,我開始認爲現在我已經走下了JStree之路,如果Javascript被關閉,不可能讓這個表單作爲一個普通的HTML表單來運行。 – bulkhead 2010-09-06 09:52:54

+0

好吧,這很明顯:)問題是你真的需要這種形式,你有沒有JavaScript的用戶?沒有太多網站關心沒有JS的ppl ... – Stefanvds 2010-09-06 10:26:31

+0

這個項目對可達性標準有一定的義務,所以事情應該在沒有JS的情況下運行。如果可以調整jstree代碼來使標記節點而不是錨點,那麼問題就可以解決。這個表格是用PHP動態構建的,所以我並不熱衷於將它完全重新調整爲由JS控制。我希望能夠讓JStree適應標籤。 – bulkhead 2010-09-06 13:19:31