使用 jquery 从没有 id 的复选框中获取选定复选框的值
Posted
技术标签:
【中文标题】使用 jquery 从没有 id 的复选框中获取选定复选框的值【英文标题】:Getting value of selected checkbox with jquery from checkboxes without id's 【发布时间】:2013-06-07 16:11:49 【问题描述】:我有许多复选框是从数据库中的 javascript API 调用生成的。我需要能够传递复选框的值,然后由用户选择并发送到处理页面。问题是复选框没有与它们关联的 ID(或者这不会是问题)它们都有相同的名称,但没有 ID。
找到哪些复选框被选中并将其值传递到下一页的最佳方法是什么?
我开始的一种方法是使用数组:
var options = ["option1","option2","option3"];
var option 1 = [0];
var option 2 = [1];
var option 3 = [2];
在处理页面上,使用:
var option1 = getFromRequest('option1') || '';
var option2 = getFromRequest('option2') || '';
var option3 = getFromRequest('option3') || '';
有更好的方法吗?
我已将实现更改为以下内容:
var values = []
$("input:checkbox.subIndustry").each(function()
values.push(this.value);
);
使用
将值传递到成功页面window.location.href = REGISTER_SUCCESS +'&values='values.join(",")
然后应该得到值
var variablname = getFromRequest('values') || "";
这是返回未定义。有什么帮助吗?
【问题讨论】:
$("input[type=checkbox]:checked") 见:***.com/questions/4813219/jquery-checkbox-value 【参考方案1】:选择它们的简单方法是$("input[type=checkbox]:checked")
但是,如果您想在检查它们时跟上它们,即使它们是在加载后添加的,您也可以创建一个变量,然后为每个输入的“更改”状态分配一个委托,即复选框并在每次更改时更新此变量。
很简单:
var checked, checkedValues = new Array();
$(function()
$(document).on("change", "input[type=checkbox]", function(e)
checked = $("input[type=checkbox]:checked");
// if you wanted to get an array of values of the checked elements
checkedValues = checked.map(function(i) return $(this).val() ).get();
// make a string of the values as simple as joining an array!
var str = checkedValues.join(); // would return something like: value1,value2,ext...
);
)
Working Example
【讨论】:
喜欢.map()
函数+1
@tymeJV jQuery 的最佳功能之一! :D【参考方案2】:
由于您所有的复选框都具有相同的名称,您可以使用以下变体检索选中的复选框:
var checked = $('input[name=ckboxname]:checked');
请参阅::checked selector 了解更多信息
【讨论】:
使用:checked
的问题在于它默认将复选框设置为“选中”状态。它不执行检查以查看该框是否已被选中。【参考方案3】:
您可以通过使用简单地获取选中复选框的值
$('input[name=checkboxname]:checked').val();
这将为您提供选中的复选框的值,所有值只需使用
jquery的各个函数
【讨论】:
【参考方案4】:事实证明,答案是在 underscore.js 库中使用 indexOf。该解决方案必须应用于用于发送数据的 API。
(_.indexOf(values, '9') != -1 ? 1 : '0'),
【讨论】:
以上是关于使用 jquery 从没有 id 的复选框中获取选定复选框的值的主要内容,如果未能解决你的问题,请参考以下文章
怎用jquery获取下拉菜单当前选中的值? $("#id").val(); 这个只能获取第一个?求解答????
如何使用 jquery 从没有任何 id 或类的 div 中删除锚标记?