打开和关闭复选框组

时间:2014-12-07 07:46:32

标签: javascript checkbox

我看着互联网正面向下,找不到合理的脚本来执行此操作,虽然这是一个简单的例程,我不知道如何实现。

当你看到执行ID问题后的代码时,我想自动取消选中“智能搜索”复选框,并在点击三个RegEx复选框之一时检查RegEx复选框,当三个复选框之一是取消选中将所有内容转换为原始状态,其中“智能搜索”复选框是唯一再次选中的复选框。太混乱了? -

换句话说,我有一个带有5个复选框命令的字段,其中默认选中#5。 我希望当单击#1,2或3时,这将取消选中#5并检查#4 AND如果未选中任何其他#1,2或3,则返回到检查了#5的原始状态。这可以理解吗?

<head>

<!-- CHECKBOXSES REGEX 1 -->

<script type="text/javascript">

function getVal(bu){

var el=document.getElementById('col12_filter_prospective');
var i=0, c;while(c=document.getElementById('chk'+(i++))) 
{el.value=(bu.checked)? bu.value : null;c!=bu? c.checked =false : null;
}
}
</script>

</head>

<body>
<table>
<tr id="filter_col12_prospective" data-column="12">         
<td colspan="4"><hr width="100%"  size"0.5px"> 
</td>           
<tr>
<tr>
<td>City</td>
<td align="center">             
<input type="checkbox" name="chk" value="[^***]" id="chk0" onclick="getVal(this)" title="[^***] Replace (***) with the word to excluded from search.">  
<input type="checkbox" name="chk" value="/whatever[^s]*./" id="chk1" onclick="getVal(this)" title="/whatever[^s]*./ Find (whatever) word that ends with (s) or any other combination.">
<input type="checkbox" name="chk" value="/***/" id="chk2" onclick="getVal(this)" title="/***/ Replace *** for specific word to be found.">
<br>
<input type="text" class="column_filter_prospective" name="col12_filter_prospective" id="col12_filter_prospective">
</td>               
<td align="center" valign="top"><input type="checkbox" class="column_filter_prospective" id="col12_regex_prospective">
</td>
<td align="center" valign="top"><input type="checkbox" class="column_filter_prospective" id="col12_smart_prospective" checked="checked">
<br>
</td>
</tr></table>

</body></html>

1 个答案:

答案 0 :(得分:0)

这个功能应该负责检查/取消检查例程我猜:

function check() {
    var isChecked = checks.some(function (el) {
        return el.checked;
    });
    document.getElementById('col12_regex_prospective').checked = !isChecked;
    document.getElementById('col12_smart_prospective').checked = isChecked;
}

// run initial check
check();

演示:http://jsfiddle.net/94rpLosn/

请参阅下面的简化示例。

&#13;
&#13;
var checks = [].slice.call(document.querySelectorAll('[name=chk]'));

function getVal() {
    check();
}

function check() {
    var isChecked = checks.some(function (el) {
        return el.checked;
    });
    document.getElementById('col12_regex_prospective').checked = !isChecked;
    document.getElementById('col12_smart_prospective').checked = isChecked;
}

check();
&#13;
<input type="checkbox" name="chk" onclick="getVal(this)">
<input type="checkbox" name="chk" onclick="getVal(this)">
<input type="checkbox" name="chk" onclick="getVal(this)">
<hr>
<input type="checkbox" id="col12_regex_prospective">
<input type="checkbox" id="col12_smart_prospective" checked="checked">
&#13;
&#13;
&#13;