Javascript 基于复选框值创建动态链接
我试图实现的是:Javascript 基于复选框值创建动态链接,javascript,jquery,checkbox,hyperlink,Javascript,Jquery,Checkbox,Hyperlink,我试图实现的是: 页面的默认状态=未勾选复选框,未显示链接 用户勾选一个(或多个)复选框 将以以下格式显示从复选框值动态生成的链接:(其中所选复选框值为“蓝色”、“绿色”和“紫色”) 到目前为止,根据另一个问题()的建议,我已经能够通过一个按钮将正确格式的值(作为所需url的一部分)打印到console.log: $(“按钮”)。在(“单击”,函数(){ var arr=[] $(“:复选框”)。每个(函数(){ 如果($(this).is(“:checked”)){ arr.push($(t
$(“按钮”)。在(“单击”,函数(){
var arr=[]
$(“:复选框”)。每个(函数(){
如果($(this).is(“:checked”)){
arr.push($(this.val())
}
})
var VAL=arr.join(“,”)
var str=”http://example.com/?subject=Products&“+VAL
console.log(str)
})
蓝色
绿色
紫色
按钮
如果我正确理解了你的问题,我相信你的思路是正确的。我按照您的建议在您的复选框中添加了更改事件。请尝试下面修改的代码
HTML
蓝色
绿色
紫色
JavaScript
$("input[type=checkbox]").on("change", function(){
var arr = []
$(":checkbox").each(function(){
if($(this).is(":checked")){
arr.push($(this).val())
}
})
var vals = arr.join(",")
var str = "http://example.com/?subject=Products&checked=" + vals
console.log(str);
if (vals.length > 0) {
$('.link').html($('<a>', {
href: str,
text: str
}));
} else {
$('.link').html('');
}
})
$(“输入[type=checkbox]”)。在(“更改”,函数()上{
var arr=[]
$(“:复选框”)。每个(函数(){
如果($(this).is(“:checked”)){
arr.push($(this.val())
}
})
var VAL=arr.join(“,”)
var str=”http://example.com/?subject=Products&checked=“+VAL
console.log(str);
如果(vals.length>0){
$('.link').html($('
您的按钮已不再使用。这是您正在寻找的吗?如果我正确理解了您的问题,我相信您的思路是正确的。我按照您的建议添加了更改事件复选框。请尝试下面修改的代码
HTML
蓝色
绿色
紫色
JavaScript
$("input[type=checkbox]").on("change", function(){
var arr = []
$(":checkbox").each(function(){
if($(this).is(":checked")){
arr.push($(this).val())
}
})
var vals = arr.join(",")
var str = "http://example.com/?subject=Products&checked=" + vals
console.log(str);
if (vals.length > 0) {
$('.link').html($('<a>', {
href: str,
text: str
}));
} else {
$('.link').html('');
}
})
$(“输入[type=checkbox]”)。在(“更改”,函数()上{
var arr=[]
$(“:复选框”)。每个(函数(){
如果($(this).is(“:checked”)){
arr.push($(this.val())
}
})
var VAL=arr.join(“,”)
var str=”http://example.com/?subject=Products&checked=“+VAL
console.log(str);
如果(vals.length>0){
$('.link').html($('
您的按钮已不再使用。这是您正在寻找的吗?这将为您提供
http://example.com/?subject=Products&checked=Blue,绿色,紫色
(如需更好的方法,请参见下文):
$(document).on(“change”,“.mod link”,function()){
var arr=[]
$(“.mod link:checked”).each(函数(){
arr.push($(this.val());
})
var VAL=arr.join(“,”)
var str=”http://example.com/?subject=Products&checked=“+VAL;
var link=arr.length>0?“”:“”;
$('.link container').html(link);
});
蓝色
绿色
紫色
这将为您提供
http://example.com/?subject=Products&checked=Blue,绿色,紫色
(如需更好的方法,请参见下文):
$(document).on(“change”,“.mod link”,function()){
var arr=[]
$(“.mod link:checked”).each(函数(){
arr.push($(this.val());
})
var VAL=arr.join(“,”)
var str=”http://example.com/?subject=Products&checked=“+VAL;
var link=arr.length>0?“”:“”;
$('.link container').html(link);
});
蓝色
绿色
紫色
别忘了创建并添加到页面的实际链接不是代码笔,OP要求的链接-…链接还没有打印到页面上
哦!谢谢!我错过了那部分!现在已经添加了。@scarabaeus/OP同样,你会想丢弃重复的id,显然是从OP的示例中获取的,但它们是not有效html:)更新了您的建议,@DelightedD0D。谢谢!别忘了创建并添加到页面的实际链接而不是代码笔,OP-要求的链接……而且链接还没有打印到页面上
哦!谢谢!我错过了那部分!现在已经添加了。@scarabaeus/OP还有,您将要删除重复的id,很明显摘自OP的示例,但它们不是有效的html:)更新了您的建议,@bleeted0d。谢谢!^^^完美!这正是我要找的!你太棒了!最后一件事。如果复选框都被取消选中,链接可能会再次消失吗?如果不太麻烦,但如果可能的话,它会更干净。太棒了!两个工作选项!@Scarabeus有不同的w是的,但它也很完美。非常棒。谢谢!:DP.S。URL结构是重力表单的先决条件。它们的查询字符串都是逗号分隔的。但是一个非常好的建议,谢谢!这对hubspot有效吗?^^完美!这正是我要找的!你太棒了!最后一件事。lin可能吗如果所有复选框都被取消选中,k是否会再次消失?如果不是,则不会太麻烦,但如果可能的话,它会更干净。太棒了!两个工作选项!@scarabaeus以不同的方式实现了,但也实现了完美。非常棒。谢谢!:DP.s。URL结构是重力表单的先决条件。它们的查询字符串都是逗号se准备好了。但是一个非常好的建议,谢谢!这对hubspot有效吗?请注意,html中重复的id=“selected”
无效。id必须是唯一的:)请注意,html中重复的id=“selected”
无效。id必须是唯一的:)