我有动作下拉框调用actionFunc()来做某事
这是actionFunc():
<script language="javascript">
$(document).ready(function()
{
$("#paradigm_all").click(function()
{
var checked_status = this.checked;
$("input[name=notPaid]").each(function()
{
this.checked = checked_status;
});
});
});
function actionFunc(){
var CHKcollect = [];
CHKcollect.push($("input[name=notPaid]:checked").attr('id'));
alert (CHKcollect);
}
</script>
这是复选框
<input id="<separator>'.$user_id.'<separator>'.$orvalue.'<separator>'.$prodId.'<separator>" name="notPaid" class="css-checkbox" type="checkbox" onClick="notPAID(this.id)" />
.......这是选择框
<a><select onchange="actionFunc()" id="itemselected" class="optselct" >
<option value="Select" selected="selected">Select the action</option>
<option value="pay">Pay for it</option>
<option value="del">Delete it</option>
<option value="mov">Move to waiting list</option>
</select></a>
此功能仅警告第一个选中的复选框,而不是所有选中的复选框。 我在这做错了什么?我需要将所有ID存储在一个数组中,以便由json
解析提前致谢
答案 0 :(得分:1)
var CHKcollect = [];
$("input[name='notPaid']:checked").each(function(){
CHKcollect.push(this.id);
});
alert(CHKcollect);
答案 1 :(得分:1)
如果您引用位于here的jQuery
函数的attr
文档,您会看到它们声明了以下内容......
获取集合中第一个元素的属性值 匹配的元素或为每个匹配的元素设置一个或多个属性 元件。
你只获得数组中第一个元素的原因是因为这一行..
CHKcollect.push($("input[name=notPaid]:checked").attr('id'));
您只获取返回的第一个元素的属性,而不是所有元素。
您需要迭代返回的每个元素并获取属性。
$("input[name=notPaid]:checked").each(function()
{
CHKcollect.push($(this).attr('id'));
});
答案 2 :(得分:0)
$('#itemselected').on('change', function()
{
var CHKcollect = [];
$("input[name=notPaid]:checked").each(function() {
CHKcollect.push(this.id);
});
alert(CHKcollect);
});
检查工作jsFiddle