根据复选框值创建一个动态链接

我试图达到的是这样的:

  • 页面的默认状态=未勾选复选框,不显示链接
  • 用户勾选一个(或多个)复选框
  • 链接出现,从复选框值动态生成,格式如下:http://example.com/?subject=Products&checked=Blue,Green,Purple(其中选中的复选框值为“蓝色”,“绿色”和“紫色“)
  • 到目前为止,基于来自另一个问题的建议(使用JavaScript将复选框的值加载到字符串中),我已经能够通过按钮将正确格式的值(作为所需url的一部分)打印到console.log中:

    $("button").on("click", 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&" + vals
    	console.log(str)	
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <input type="checkbox" id="selected" name="selected" value="Blue" class="products"> Blue<br>
    <input type="checkbox" id="selected" name="selected" value="Green" class="products"> Green<br>
    <input type="checkbox" id="selected" name="selected" value="Purple" class="products"> Purple
    <br>
    <button>button</button>

    如果我正确理解你的问题,我相信你是在正确的轨道上。 我按照您的建议在您的复选框中添加了更改事件。 尝试下面的修改后的代码。

    HTML

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <input type="checkbox" name="selected" value="Blue" class="products"> Blue<br>
    <input type="checkbox" name="selected" value="Green" class="products"> Green<br>
    <input type="checkbox" name="selected" value="Purple" class="products"> Purple
    <br>
    <span class="link"></span>
    

    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('');
      }  
    })
    

    工作CodePen

    您的button不再被使用。 这是你在找什么?


    这将工作给你一个URL

    http://example.com/?subject=Products&checked=Blue,Green,Purple

    (请参阅下面的可能更好的方法):

    $(document).on("change", ".mod-link", function() {
      var arr = []
      $(".mod-link:checked").each(function() {
        arr.push($(this).val());
      })
      var vals = arr.join(",")
      var str = "http://example.com/?subject=Products&checked=" + vals;
      var link = arr.length > 0 ? '<a href="'+str+'">Click me</a>': '' ;
      
      $('.link-container').html(link);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="checkbox" class="mod-link" name="selected" value="Blue" class="products">Blue
    <br>
    <input type="checkbox" class="mod-link" name="selected" value="Green" class="products">Green
    <br>
    <input type="checkbox" class="mod-link" name="selected" value="Purple" class="products">Purple
    <br>
    <div class="link-container"></div>
    链接地址: http://www.djcxy.com/p/56009.html

    上一篇: Create a dynamic link based on checkbox values

    下一篇: checked radio button show a div