如何在数组中获取复选框和关联的文本框值,并使用jquery或javascript将该值附加到url

如何在数组中获取复选框和关联的文本框值,并使用jquery或javascript将该值附加到url,javascript,jquery,Javascript,Jquery,在我的场景中,有一个项目列表,复选框和数量字段文本框被分配给每个项目。我想要实现的是在数组中获取所有选中复选框和关联数量字段文本框值,并将其附加到url 需要在下面提到的url中传递这些值 shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=checkboxvalue,quantityvalue;checkboxvalue,quantityvalue;等 这

在我的场景中,有一个项目列表,复选框和数量字段文本框被分配给每个项目。我想要实现的是在数组中获取所有选中复选框和关联数量字段文本框值,并将其附加到url

需要在下面提到的url中传递这些值

shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=checkboxvalue,quantityvalue;checkboxvalue,quantityvalue;等

这是我的html代码


使用“我正在获取复选框值”。 单击下面提到的添加到购物车锚定标记时,脚本正在执行

到目前为止我都试过了

<script>
function addURL(element)
{     
var qtyvalue = document.getElementById("qty").value;
var val = [];  
$(':checkbox:checked').each(function(i)
{          
val[i] = $(this).val();
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi='+val[i]+','+qtyvalue);
});
}
</script>

函数addURL(元素)
{     
var qtyvalue=document.getElementById(“数量”)值;
var-val=[];
$(':复选框:选中')。每个(函数(i)
{          
val[i]=$(this.val();
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=“+val[i]+”,“+qtyvalue”);
});
}
但它只向url添加单个复选框和数量字段值,而不是整个数组

checkboxvalue,quantityvalue;checkboxvalue,quantityvalue;等


我不熟悉java脚本和jquery,因此需要帮助来解决这个问题。

您正在每个循环中添加
href attr
,这就是为什么它会在
href attr
中附加
val array
的最终值

试试下面一个

<script>
function addURL(element)
{     
var qtyvalue = document.getElementById("qty").value;
var val = [];  
$(':checkbox:checked').each(function(i)
{          
val[i] = $(this).val();

});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi='+val.toString()+','+qtyvalue);
}
</script>

函数addURL(元素)
{     
var qtyvalue=document.getElementById(“数量”)值;
var-val=[];
$(':复选框:选中')。每个(函数(i)
{          
val[i]=$(this.val();
});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=“+val.toString()+”,“+qtyvalue);
}

您正在每个循环中添加
href attr
,这就是为什么它会在
href attr

试试下面一个

<script>
function addURL(element)
{     
var qtyvalue = document.getElementById("qty").value;
var val = [];  
$(':checkbox:checked').each(function(i)
{          
val[i] = $(this).val();

});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi='+val.toString()+','+qtyvalue);
}
</script>

函数addURL(元素)
{     
var qtyvalue=document.getElementById(“数量”)值;
var-val=[];
$(':复选框:选中')。每个(函数(i)
{          
val[i]=$(this.val();
});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=“+val.toString()+”,“+qtyvalue);
}

您可以迭代选中的复选框,并创建具有选中值+逗号分隔符+当前qtyvalue的新数组

然后用
将它们连接起来字符:

var result = [];
$(':checkbox:checked').each(function(i){
 result.push($(this).val() + "," + $(this).parent().next().find('input').val());
});
var strreuslt = result.join(';'); // checkboxvalue,quantityvalue;checkboxvalue,quantityvalue;etc
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi='+strreuslt);

您可以迭代选中的复选框,并创建具有选中值+逗号分隔符+当前qtyvalue的新数组

然后用
将它们连接起来字符:

var result = [];
$(':checkbox:checked').each(function(i){
 result.push($(this).val() + "," + $(this).parent().next().find('input').val());
});
var strreuslt = result.join(';'); // checkboxvalue,quantityvalue;checkboxvalue,quantityvalue;etc
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi='+strreuslt);

生成具有选定值的字符串,并在循环后追加。如下

 function addURL(element)
{     

var selectionString = '';  
$(':checkbox:checked').each(function(i)
{         

selectionString = selectionString + $(this).val()+','+$('.input').eq(i+1).text();

});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=selectionString);
}

生成具有选定值的字符串,并在循环后追加。如下

 function addURL(element)
{     

var selectionString = '';  
$(':checkbox:checked').each(function(i)
{         

selectionString = selectionString + $(this).val()+','+$('.input').eq(i+1).text();

});
$('#ct1').attr('href','http://shopping.sandbox.netsuite.com/app/site/backend/additemtocart.nl?c=4030365&n=1&buyid=multi&multi=selectionString);
}

谢谢您的回复,但我得到了未定义的数量值。@user2787474:您能和我分享这个问题吗fiddle@user2787474:您还没有在那里使用我的代码,请尝试一下。感谢您的回复,但我得到了未定义的数量值。@user2787474:您能分享一下这个问题吗fiddle@user2787474:您没有在那里使用我的代码,尝试一下。感谢您的回复,但它只添加了一个复选框和数量字段值,而不是所有选定的值。现在它将选择所有选中的复选框值和数量。谢谢,但它不会更新当前选中复选框的关联输入框值。它不会更新输入框值那么数量文本框是如何呈现的?共享一些示例html。上述解决方案仅在所有数量文本框都使用“input”类呈现时有效。感谢您的响应,但它只添加了一个复选框和数量字段值,而不是所有选定的值。现在它将选择所有选中的复选框值和数量。谢谢,但它不会更新当前选中复选框的关联输入框值。它不会更新输入框值那么数量文本框是如何呈现的?共享一些示例html。只有当所有quantity文本框都使用类“input”呈现时,上述解决方案才会起作用。