嗨,我正在使用 Titanium 创建一个可以检查的行表。
我需要用 Javascript 编写一些代码,只允许检查一行,而当一个被选中时,另一行未被选中。
我不担心钛零件,而是更担心通用解决方案。
我知道我需要设置所有行的数组。当一个框被选中时我下一步该怎么做?我将如何通过其他人并告诉他们不受限制?
谢谢你的帮助。
嗨,我正在使用 Titanium 创建一个可以检查的行表。
我需要用 Javascript 编写一些代码,只允许检查一行,而当一个被选中时,另一行未被选中。
我不担心钛零件,而是更担心通用解决方案。
我知道我需要设置所有行的数组。当一个框被选中时我下一步该怎么做?我将如何通过其他人并告诉他们不受限制?
谢谢你的帮助。
尝试这样的事情:
var checkboxes = document.querySelectorAll('#myTable input[type="checkbox"]'),
checkboxClickHandler,
i;
checkboxClickHandler = function (event) {
var i;
// only uncheck if target is a checkbox which has been checked
if (event.target.checked) {
for (i = 0; i < checkboxes.length; i++) {
// don't uncheck clicked box
if (checkboxes[i] !== event.target) {
checkboxes[i].checked = false;
}
}
}
};
document.getElementById('#myTable').addEventListener('click', checkboxClickHandler, false);
现场示例:http: //jsfiddle.net/ztm82/
function doit(table, event) {
if (event.target.nodeName === "INPUT"
&& event.target.type === "checkbox"
&& event.target.checked)
{
var rows = table.tBodies[0].rows;
for (var i = 0; i < rows.length; i++)
{
var input = rows[i].getElementsByTagName("INPUT")[0];
if (input !== event.target)
{
input.checked = false;
}
}
}
}
互斥复选框?为什么不使用单选按钮 ( <input type='radio'>
) 来代替?您将免费获得此行为,并且对用户来说会更直观。