【发布时间】:2011-07-28 12:59:58
【问题描述】:
我的 JavaScript 女巫包含以下代码:
$("input:checked").length
在浏览器中单击返回按钮后,此代码 $("input:checked").length;不在歌剧中工作。有什么我可以做的吗?
基本上我需要检查是否有两个单选按钮被选中
<script>
$(document).ready(function () {
$("#signup").button();
$("#signup").click(function () {
alert($("#bb input:checked").length);
if ($("#bb input:checked").length == 2) {
$("#signup").val("1");
}
});
});
</script>
@using (Html.BeginForm())
{
<div id="wrapper">
<div id="bb">
<div id="rbl1" class="rbl1">
<input type="radio" id="rb11" name="radio-b1" value="1"/><label for="rb11" class="radio">Everyday</label>
<input type="radio" id="rb12" name="radio-b1" value="2"/><label for="rb12" class="radio">Saturday</label>
</div>
<div id="rbl2" class="rbl2">
<input type="radio" id="rb21" name="radio-b2" value="1"/><label for="rb21" class="radio">One</label>
<input type="radio" id="rb22" name="radio-b2" value="2"/><label for="rb22" class="radio">Two</label>
</div>
</div>
</div>
<button name="submit" id="signup">Sugn up</button>
}
第一次在所有浏览器中运行良好,在检查单选按钮后,我在那个时候提交了我的表单,一切都很好。但是然后我只是检查了如果我返回浏览器历史记录并再次提交表单会发生什么,所以除了歌剧之外的所有浏览器都很好,它在这个代码行 $("#bb input:checked").length == 2) 和没有详细说明原因。
在我使用 jQuery 1.5.1 之前,现在我更新到 1.5.2 仍然是同样的问题。 详细示例代码更新,完整的html代码贴在这里http://sourcepod.com/puvmmz30-4571
可能是 Opera 历史出了问题。
还有其他方法我可以设置 $("#signup").val("1"); 的值吗?或者检查是否选择了广播列表(“#bb input:checked”)并且 Opera 历史记录没有清除它。
【问题讨论】:
-
你有什么版本的jquery?你试过最新的吗?
-
失败是什么意思?发生什么了?您是否尝试过警报以查看实际值是多少?
-
我用'debugger'语句看看opera dragonfly发生了什么,'("#bb input:checked").length ==的值为0,但应该不是0跨度>
-
@Reg 这可能是 Opera 正在向您显示历史记录中的页面,而不是实际重新加载/刷新页面。您有我们可以查看的测试页吗?
-
完整的html源代码贴在这里sourcepod.com/puvmmz30-4571