无法在Razor上生成的.buttonset()jQuery方法生成RadioButtons

时间:2013-08-02 10:06:04

标签: asp.net-mvc-3 jquery-ui razor radio-button jqueryi-ui-buttonset

我想将buttonset()jQuery方法应用于radioButtons。 所以我写道:

<div id="divSomething">
    <input type="radio" id="radio1" name="HasSomething" value="Yes" ><label for="radio1">Yes</label>
    <input type="radio" id="radio2" name="HasSomething" value="No"><label for="radio2">No</label>
    <input type="radio" id="radio3" name="HasSomething" value="Dont mind" checked="checked"><label for="radio3">Don't mind</label>
</div>

<script type="text/javascript">
    $("#divSomething").buttonset();

    $("#divSomething input").change(function () {
        alert(this.value);
    });
</script>

......这完美有效!

但这是一个ASP.NET MVC3项目,我想使用Razor语法生成我的radioButtons。 所以我写道:

<div id="divSomething">
    @Html.RadioButtonFor(m => m.HasSomething, "Yes", new { @type="radio", @id="radio1"})
    @Html.RadioButtonFor(m => m.HasSomething, "no", new { @type = "radio", @id = "radio2" })
    @Html.RadioButtonFor(m => m.HasSomething, "Dont know", new { @type = "radio", @id = "radio3", @checked = "checked" })
</div>

<script type="text/javascript">
    $("#divSomething input").buttonset();

    $("#divSomething").change(function () {
        alert(this.value);
    });
</script>

...按钮显示为&#34; normal&#34; radioButtons,而不是&#34; buttonset-style&#34;。 如果我只写了$(&#34; #divSomething&#34;)。buttonset(); radioButtons甚至没有显示......

最糟糕的是,为radioButtons生成的HTML对于两种方法都是相同的,除了radioButtons参数的顺序(id,value等等),但我认为这并不重要。

有什么东西是如此明显我无法看到它吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在你的脚本中,第一个是#divSomething,第二个是#divSomething输入

答案 1 :(得分:0)

好的,这就是解决方案:我必须为生成的RadioButtons添加标签

@Html.RadioButtonFor(m => m.HasSomething, "Yes", new { @id="radio1"})
<label for="radio1">Yes</label>
@Html.RadioButtonFor(m => m.HasSomething, "No", new { @id = "radio2" })
<label for="radio2">No</label>
@Html.RadioButtonFor(m => m.HasSomething, "Dont know", new { @id = "radio3", @checked = "checked" })
<label for="radio3">Don't know</label>