Jquery:获取复选框值并将其用作URL参数

时间:2017-09-04 10:01:25

标签: jquery url checkbox

我有一个带复选框列的表,每个复选框都包含一个唯一值。 可以单击任何和所有复选框。

当单击一个按钮时,我想将这些值连接到一个URL字符串,然后我将在ajax调用中使用它。

<input type="checkbox" name="product[]" value="256">
<input type="checkbox" name="product[]" value="317">
<input type="checkbox" name="product[]" value="9985">
<input type="checkbox" name="product[]" value="3751">

这就是我希望网址结束的方式:

http://example.com/data?pid=[checkbox value 1]&pid=[checkbox value 2]&pid=[checkbox value 3]

等等。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

    $(function () {
        var qs = '';
        $('[name="product[]"]').is(':checked').each(function(index, element) {
            qs += "pid=" + element.value + "&";
        });

        console.log(qs);
    });

发布对象会更好,但如果这是您的要求,这应该可行。你可以修剪最后的&amp;如果你愿意的话。

将数据作为数组发布,这将是一个更好的解决方案:

     $(function() {
        var data = [];
        $('[name="product[]"]').is(':checked').each(function(index, element) {
            data.push(element.value);
        });

        console.log(data);

        $.ajax({
            type: "POST",
            url: 'your url',
            data: data,
            success: success,
        });
    });
    function success() {

    }

答案 1 :(得分:0)

您可以使用解决方案https://jsfiddle.net/15Lx3gvv/

&#13;
&#13;
var url = 'http://example.com/data';
$('button').click(function(){
  var first = 0;
  $('input[name="product[]"]').each(function(i){
    if( $(this).is(':checked')){
      url += ((first == 0) ? "?" : "&") + 'pid=' + $(this).attr('value');
      first = 1;
    }	
  });
  console.log(url);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="product[]" value="256">
<input type="checkbox" name="product[]" value="317">
<input type="checkbox" name="product[]" value="9985">
<input type="checkbox" name="product[]" value="3751">

<br/>

<button>
Submit
</button>
&#13;
&#13;
&#13; 无论checkboxchecked,只有这些值会附加到url

希望这会对你有所帮助。