我想将 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 语法来生成我的单选按钮。所以我写道:
<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>
...并且按钮显示为“普通”单选按钮,而不是“按钮集样式”。如果我只是写 $("#divSomething").buttonset(); 单选按钮甚至不显示...
最糟糕的是,radioButtons 生成的 HTML 对于这两种方法都是相同的,除了 radioButtons 参数(id、值等)的顺序,但我认为这并不重要。
有什么东西这么明显我看不到吗?
谢谢您的帮助。