2

我有许多从数据库的 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') || "";

这是返回未定义。有什么帮助吗?

4

4 回答 4

2

选择它们的一种简单方法是$("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...
    });
})

工作示例

于 2013-06-11T18:00:25.750 回答
0

由于所有复选框都具有相同的名称,因此您可以使用以下变体检索选中的复选框:

var checked = $('input[name=ckboxname]:checked');

参见: :checked 选择器了解更多信息

于 2013-06-11T17:54:29.450 回答
0

事实证明,答案是在 underscore.js 库中使用indexOf 。该解决方案必须应用于用于发送数据的 API。

(_.indexOf(values, '9') != -1 ? 1 : '0'),
于 2013-06-17T15:15:35.883 回答
0

您可以使用简单地获取选中复选框的值

$('input[name=checkboxname]:checked').val();

这将为您提供选中的复选框的值,并且所有值只需使用

jquery 的每个函数。

于 2013-06-11T18:01:24.393 回答