0

我有一个 django 视图,其中包含一个简单的表单和一个链接表。表单有一个下拉框,链接的查询参数应该包含下拉框的值。因此,例如,如果下拉列表有选项 1、2 和 3,并且选择了 2,则表格前三行中的链接目标应该是这样的:

/preview/first?other_arg=somevalue&choice=2
/preview/second?different=argument&choice=2
/preview/third?choice=2

除了 之外的所有arg=2内容都是为每一行预定义的。

在我看来,有两种方法可以做到这一点。我可以在下拉值更改时重新创建所有链接,或者我可以在单击链接时创建链接。我一直在尝试通过第二种方法来做到这一点,但我无法让它工作(即当我点击链接时没有任何反应)。我创建了一个显示我的测试代码的小提琴:http: //jsfiddle.net/LcY8c/4/

这是最好的方法吗,谁能指出我哪里出错了?

4

2 回答 2

2

我稍微改变了你的小提琴。将 id 更改为 class,并将 jQuery 从 click 事件更改为 change 事件。这是你要找的吗?

http://jsfiddle.net/Grevling/LcY8c/17/

<div>
<select id="choiced">
    <option choice="1">1</option>
    <option choice="2">2</option>
    <option choice="3">3</option>
</select>
</div>
<div>

<a class="link" base="/link1" href="#">link1</a>
<a class="link" base="/link2?arg1=1" href="#">link2</a>
<a class="link" base="/link3?arg1=other" href="#">link3</a>

</div>

脚本:

  $(document).ready(function () {
    $("#choiced").change(function () {
        var reportType = $('#choiced').val();
        var link = $('a').attr('base') + '&choice=' + reportType;


        $("a").each(function (index) { 
            $(this).attr("base", $(this).attr("base") + '&choice=' + reportType);
        });
    });
});
于 2013-04-17T09:26:20.680 回答
1

您正在使用具有相同值的 id 属性 3 次。id 属性应该是唯一的。

<a id="link" base="/link1" href="#">link1</a>
<a id="link" base="/link2?arg1=1" href="#">link2</a>
<a id="link" base="/link3?arg1=other" href="#">link3</a>
于 2013-04-17T09:13:30.350 回答