我想出了这个看似简单的问题。我的JSP页面中有一个复选框和一个与之关联的onclick。当我单击复选框时,我需要在此onclick函数内部检查是否已选中或取消选中以了解要采取的操作。但是,它总是被检查!我不知道为什么。它几乎就像点击操作完成并在它到达此功能之前标记它已检查。但是,如果我做一个简单的HTML示例页面,它可以正常工作并返回.checked的正确值。 我已经尝试删除“this”并只是通过onclick上的ID调用复选框,结果相同 这是设置:
<label><input type="checkbox" onclick="selectEntireRange(this);"/> Select ALL Ranges</label>
这是JS:
function selectEntireRange(checkElement)
{
// if checked - remove check and display table rows normally
if(checkElement.checked)
{
//ALWAYS EXECUTES HERE!
checkElement.checked = false;
greyoutAllTableRows(false);
}
// if unchecked - mark 'checked' and grey out all table rows
else
{
checkElement.checked = true;
setAllCheckBoxes(false);
var selectedRangeField = document.getElementById('effRange');
selectedRangeField.value = '';
greyoutAllTableRows(true);
}
}
任何帮助都会很棒!谢谢!
P.S。我不能使用jQuery!
答案 0 :(得分:0)
怎么样
onclick="selectEntireRange(this.checked)"
然后更改函数以询问其是真还是假或0或1或者默认检查值是什么。不确定。
答案 1 :(得分:0)
问题出现是因为您在if / else块中设置了checkElement.checked = false;
。注释\删除该行,它将工作。由于点击后您将其设置为false,因此复选框不会进入检查状态,每次用户点击它时,都会因checkElement.checked = false;
行而取消选中。