2011-05-17 103 views
0

我試圖在運行時將單選按鈕添加到按鈕組。這是我的HTML:在運行時向JQuery按鈕組添加單選按鈕

<form> 
    <div id="container"> 
    <input type="radio" id="radio1" name="tipo" value="1"/> 
    <label for="radio1">Alt1</label> 

    <input type="radio" id="radio2" name="tipo" value="2"/> 
    <label for="radio2">Alt2</label> 
    </div> 
</form> 

,這是我的javascript:

$(function() { 
    $("#container").buttonset(); 
    $("#container").append("<input type='radio' id='radio3' name='tipo' value='3'/><label for='radio3'>Alt3</label>"); 
    $("#container").buttonset(); 
}) 

這表明ALT1和ALT2在jQueryUI的皮膚。 Alt3顯示爲普通單選按鈕。如果我註釋掉第一個按鈕組像這樣它的工作原理:

$(function() { 
    //$("#container").buttonset(); 
    $("#container").append("<input type='radio' id='radio3' name='tipo' value='3'/><label for='radio3'>Alt3</label>"); 
    $("#container").buttonset(); 
}) 

看來,你只能設置buttonset一次。我在其他地方看過,你應該可以打電話:

$("#container").buttonset('refresh'); 

但是這對我不起作用。

有沒有人找到解決辦法?上面的代碼是我試圖做的簡化版本。我在運行時附加到容器,我希望單選按鈕顯示爲JQueryUI風格。上面的代碼被簡化以顯示問題是什麼。

你可以自己試一試這裏:http://jsfiddle.net/aembleton/vwemc/

+0

看起來像它的工作(即時通訊使用鉻) – Neal 2011-05-17 15:34:32

+0

我剛剛更新了網址http://jsfiddle.net/aembleton/vwemc/之前的一個是缺少第一個buttonset,這是它的工作原因。我在Chrome中測試過它,並且在那裏也崩潰了。 – Arthur 2011-05-17 15:38:23

+0

我修好了。看到我的回答 – Neal 2011-05-17 15:42:08

回答

3

這裏是一個更新的小提琴:http://jsfiddle.net/maniator/w6Fec/3/

下面是代碼:

$(function() { 
    $("#container").buttonset(); 
    $("#container").append("<input type='radio' id='radio3' name='tipo' value='3'/><label for='radio3'>Alt3</label>"); 
    $("#container").buttonset('refresh'); 
}) 

出於某種原因,在你的提琴您正在使用2 jQueryUI的公司。

+0

非常感謝。我回去看看我的實際代碼,並意識到,當我嘗試調用.buttonset('刷新');我之前沒有調用.buttonset(),導致它失敗。 – Arthur 2011-05-17 16:11:27

+0

歡迎光臨:-)和@aembleton,記得選擇一個可接受的答案,當你可以 – Neal 2011-05-17 16:12:11