1
如果使用jQueryUI創建無線電/複選框輸入按鈕集,則必須使用顯式標籤。這意味着您必須通過ID將label
關聯到input
。jQueryUI按鈕集需要唯一ID
如果您想在同一頁面上使用多個相同的按鈕集,這意味着您不能只爲每個按鈕集使用相同的代碼,因爲ID在文檔中必須是唯一的。
大多數瀏覽器都會接受非唯一的ID,但我寧願不會被迫打破Web標準,顯然沒有保證瀏覽器將來會繼續支持非唯一ID。
我可以爲每種情況生成唯一的ID,但是這會使代碼複雜化,並增加了保證ID的問題的確是唯一的。
處理多個相同的按鈕組的最佳方法是什麼?
這說明問題:http://jsfiddle.net/C3NyV/1/
在我的特定情況下,通過使用控件工廠創建一個插件生成的buttonset。我不知道這是否有助於解決這個特定問題。
嗯,我想,但問題是這樣的:1. jQueryUI buttonset()需要使用ID的。 2. HTML規範要求ID是唯一的。如果您想在單個頁面上多次使用按鈕集,這兩個似乎與彼此不一致。由於我直接引用DOM節點,所以在集合之間進行區分並不是問題的一部分。 – Martijn
您能詳細說明需要哪些2個ID嗎?我更新了你的Fiddle - http://jsfiddle.net/bRhRM/1/,這兩個容器之間不同的唯一id就是4個單選按鈕本身的id,這對於可訪問的標記是必需的。 –
是的,問題是單選按鈕的HTML代碼將在客戶端生成,這使得創建唯一ID很困難。除非您執行相對昂貴的生成/檢查(如果存在)循環,否則不會生成已生成的標識。理想情況下,buttonset()不會依賴ID。 – Martijn