Jquery 选中选中的复选框不起作用
Jquery selecting checkboxes that are checked is not working
我正在尝试获取div中所有选中复选框的值,并使用选中复选框的值设置输入框的值。
我的代码如下:
.HTML
<table class="table-striped">
<div id="checkboxlist">
<tr>
<td><input type="checkbox" value="S"/>Sausages</td>
<td><input type="checkbox" value="N"/>Noodles</td>
<td><input type="checkbox" value="W"/>Wurst</td>
<td><input type="checkbox" value="E"/>Eggs</td>
<td><button type="button" id="getresultbutton">Add items</button></td>
</tr>
</div>
</table>
<div>
<input type="text" id="results">
</div>
爪哇语
$("#getresultbutton").on("click", function(){
var chkArray = [];
$("#checkboxlist input:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',');
if(selected.length > 1){
$("#results").val(selected);
}else{
alert("Please select atleast one of the checkboxes");
}
});
这似乎行不通。我不确定我的 jquery 选择元素是问题还是其他问题。
小提琴:https://jsfiddle.net/rdawkins/avy1mdvr/
你的脚本很好,当我做一些更改时它对我有用,看看。
我只是格式化您的 HTML 代码并在 jquery 中添加一个文档就绪函数。 同时更新无法选择至少一个复选框的条件。 应为 0。
修改后的脚本:
$(function(){
$("#getresultbutton").on("click", function(){
var chkArray = [];
$("#checkboxlist input:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',');
if(selected.length > 0){
$("#results").val(selected);
}else{
alert("Please select at least one of the checkboxes");
}
});
});
修改后的网页:
<div id="checkboxlist">
<table class="table-striped">
<tr>
<td><input type="checkbox" value="S"/>Sausages</td>
<td><input type="checkbox" value="N"/>Noodles</td>
<td><input type="checkbox" value="W"/>Wurst</td>
<td><input type="checkbox" value="E"/>Eggs</td>
<td><button type="button" id="getresultbutton">Add items</button></td>
</tr>
</table>
</div>
<div>
<input type="text" id="results">
</div>
HTML:删除表格内的div
<table class="table-striped">
<tr id="checkboxlist">
<td><input type="checkbox" value="S"/>Sausages</td>
<td><input type="checkbox" value="N"/>Noodles</td>
<td><input type="checkbox" value="W"/>Wurst</td>
<td><input type="checkbox" value="E"/>Eggs</td>
<td><button type="button" id="getresultbutton">Add items</button></td>
</tr>
</table>
<div>
<input type="text" id="results">
</div>
Javascript:注意长度检查(>0,而不是>1)
$("#getresultbutton").on("click", function(){
var chkArray = [];
$("#checkboxlist input:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',');
if(selected.length > 0){
$("#results").val(selected);
}else{
alert("Please select atleast one of the checkboxes");
}
});
从表中删除div
元素,并为tr
提供checkboxlist
ID。
<table class="table-striped">
<tr id="checkboxlist">
<td>
<input type="checkbox" value="S" />Sausages</td>
<td>
<input type="checkbox" value="N" />Noodles</td>
<td>
<input type="checkbox" value="W" />Wurst</td>
<td>
<input type="checkbox" value="E" />Eggs</td>
<td>
<button type="button" id="getresultbutton">Add items</button>
</td>
</tr>
</table>
<div>
<input type="text" id="results">
</div>
在检查长度时,您还需要使用> 0
,因为您希望他们至少选择一个。只检查数组的长度而不是字符串也可能更具可读性。
if (chkArray.length > 0) {
...
更新的小提琴
首先,你不能在表格中放置"div"标签,这是不正确的。
其次,如果您只想获取表中输入的值,请为表提供一个 id。
最后,您需要确保所有输入都是类型复选框,因为控制您正在调用的变量总是好的,这不是 100% 必要的,但它会在将来编程更多不同的函数时为您提供帮助。
$("#getresultbutton").on("click", function(){
var chkArray = [];
$("#tableCheck input[type='checkbox']:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',');
if(chkArray.length > 0){
$("#results").val(selected);
}else{
alert("Please select atleast one of the checkboxes");
}
});
希望对您有所帮助。
小调:https://jsfiddle.net/Yazsid/avy1mdvr/8/
相关文章:
- 单击li时不能选中复选框
- 不正确的复选框重定向
- 不能在复选框旁边显示元素
- $.click() 和 $.trigger() 不会激活复选框的 onchange 函数
- 为什么 javascript 不起作用复选框
- 代码点火器 - jQuery 数据表 搜索和分页时不会保留复选框中的选中值
- 输入到选项卡脚本不会传递复选框
- IE似乎会取消选中一个不确定的复选框,而Chrome和FF会在点击时选中它
- jstree不兼容的复选框和类型插件
- 意外的空格,而不是不必要的复选框标签
- 是否有可能在单击复选框时停止更改,挂起某些复选框
- Oninput不会触发复选框
- 不发送隐藏复选框输入值:(
- JavaScript不能选中复选框
- 当我在
上有侦听器时,为什么我不能在复选框上有' - IE8:设置类时不调用onclick复选框
- jQuery检查所有不工作的复选框
- Javascript代码来选择在IE8中不工作的复选框
- jQuery可点击不选中输入:复选框?选中所有复选框
- 为什么,用ReactJS,我不能使复选框反应被点击