附加到href的复选框列表

时间:2012-03-05 00:43:08

标签: jquery html forms hyperlink http-get

我将在我的问题前面说明我知道这是一个奇怪的请求,但是对于这个特定的项目不能这样做。

我有几百个复选框的列表作为表单的一部分。在表单之外,我有一个链接指向一个单独的页面,我想将选中的复选框列表附加到。例如:

<form name="sampleForm" method="POST" action="process.php">
    <input type="checkbox" name="checkbox_1" />
    <input type="checkbox" name="checkbox_2" />
    <input type="checkbox" name="checkbox_3" />
</form>

<a href="otherPage.php>Alternate Page</a>

我需要的是当有人点击Alternate Page链接时,复选框会像GET语句一样附加:

otherpage.php?checkbox_1=1&checkbox_2=1

或者这些方面的东西,任何可以解决这样的问题的建议都会很棒。我不想重写大部分代码或用提交按钮替换它。

3 个答案:

答案 0 :(得分:1)

您可以通过将javascript附加到链接来实现这一目的。将HTML更改为:

<a id="otherPageLink" href="otherPage.php>Alternate Page</a>

添加此javascript:

$("#otherPageLink").click(function() {
    var checkStr = [];
    $("form[name='sampleForm'] input[type='checkbox']").each(function() {
        checkStr.push(this.name + "=" + this.checked ? 1 : 0);
    });
    window.location = this.href + "?" + checkStr.join("&");
    return(false);
});

其工作原理如下:

  1. 将点击处理程序附加到链接。
  2. 获取该表单中的所有复选框
  3. 遍历每个复选框,根据每个复选框为其构建一个字符串,并将它们全部放入数组中
  4. 获取链接的原始网址,并将其与复选框的所有查询参数合并,然后转到该网址
  5. 返回false以防止正常处理链接

答案 1 :(得分:1)

我会尝试这样的事情:

$('a').click(function(){
  $('form').attr('method', 'GET');
  $('form').attr('action', 'otherPage.php');
  $('form').submit();
});

如果将id放在字段上,则可以使用更好的jquery选择器。

答案 2 :(得分:0)

查询字符串使用此标记

<form id="sampleForm" method="POST" action="process.php">
    <input type="checkbox" name="checkbox_1" />
    <input type="checkbox" name="checkbox_2" />
    <input type="checkbox" name="checkbox_3" />
</form>

<a id="alt_page_link" href="otherPage.php">Alternate Page</a>

这个JS

$('#alt_page_link').click(function(){
    var href=$(this).attr('href')+'?'+ $('#sampleForm').serialize();
   $(this).attr('href',href)
})

使用此代码,复选框值将是浏览器默认值“on”。您希望将假设附加到Alt Page ling并按照该页面进行操作

编辑演示http://jsfiddle.net/SjwrC/