0

シンプルなフォームとリンクのテーブルを含む django ビューがあります。フォームにはドロップダウン ボックスがあり、リンクのクエリ パラメータにはドロップダウンの値が含まれている必要があります。たとえば、ドロップダウンにオプション 1、2、3 があり、2 が選択されている場合、表の上部 3 行のリンク ターゲットは次のようになります。

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

を除くすべてarg=2が各行に事前定義されています。

これを行うには2つの方法があるように私には思えます。ドロップダウン値が変更されるたびにすべてのリンクを再作成するか、クリックされたときにリンクを作成することができます。2 番目の方法で実行しようとしましたが、うまくいきません (つまり、リンクをクリックしても何も起こりません)。テスト コードを示すフィドルを作成しました: http://jsfiddle.net/LcY8c/4/

これは最善のアプローチですか?誰かが私が間違っている場所を指摘できますか?

4

2 に答える 2

2

私はあなたのフィドルを少し変えました。ID をクラスに変更し、jQuery をクリック イベントから変更イベントに変更しました。あなたが探しているのはこれですか?

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 に答える