Javascript 复选框模棱两可的行为

Javascript 复选框模棱两可的行为,javascript,jquery,html,Javascript,Jquery,Html,应用程序包括jquery1.9.1、undescore.js和Jquery-stripn数据表 我的复选框包装如下: <label style="top: 3px; position: relative;" class="checkbox" id="IsSpreadCheckBox"> <input type="checkbox" name="IsSpread" id="IsSpread"> <span></span> </l

应用程序包括jquery1.9.1、undescore.js和Jquery-stripn数据表

我的复选框包装如下:

<label style="top: 3px; position: relative;" class="checkbox" id="IsSpreadCheckBox">
    <input type="checkbox" name="IsSpread" id="IsSpread">
    <span></span>
</label>
另外,我还有一些代码,如果需要的话,可以在页面加载后禁用这个元素

在调试时,正确选中或取消选中隐藏的复选框元素(复选框图像也正确)。此外,这在目标浏览器IE 10(服务器端收到正确的复选框值)中运行良好,但在我的FireFox 29中,使用FireBug在表单提交上调试时,我看到:

$("#IsSpread").attr("checked") // checked
$("#IsSpread").prop("checked") // false
并且服务器总是收到false

对此元素的属性更改进行调试不会产生任何结果

如果我以编程方式在$(document).ready()上选中它,它总是发送true条件

谢谢

使用
.attr()

后来:

$('#send').click(function()
{
    var checked = $('#IsSpread').attr("checked") == "checked";
    alert("Sending " + checked);
});
$('#send').click(function()
{
    var checked = $('#IsSpread').prop("checked");
    alert("Sending " + checked);
});
使用
.prop()
(实际上这是一种奇怪的行为,但对我来说很有效):

后来:

$('#send').click(function()
{
    var checked = $('#IsSpread').attr("checked") == "checked";
    alert("Sending " + checked);
});
$('#send').click(function()
{
    var checked = $('#IsSpread').prop("checked");
    alert("Sending " + checked);
});

backgroundContainer
已经是一个jQuery对象,因此您可以直接使用它,而不用执行
$(backgroundContainer)
。您是如何隐藏复选框的?请查看。这是你想要的吗?它看起来像是
.prop
仅在选中元素时才起作用。重新选择元素后,
.prop
更改将丢失。使用“发送”按钮。“element is selected”是指选择
var element=$(“…”)
,更改
element
属性,然后再次选择元素,元素没有这些属性。@Regent,好的,我明白了。。。它现在解决了我的问题,但之前它什么也没给我(正如你在评论中看到的)。谢谢。@Enam不客气。所以,如果它是正确的,我会把它作为答案发布,这样它就不会在评论中丢失。
$('#send').click(function()
{
    var checked = $('#IsSpread').prop("checked");
    alert("Sending " + checked);
});