我想将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等等),但我认为这并不重要。
有什么东西是如此明显我无法看到它吗?
感谢您的帮助。
答案 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>