1

私は次のようなJavaScript関数を持っています

function GetSelectedItem()
{
    var e = document.getElementById("country");
    var strSel =  e.options[e.selectedIndex].value;
    alert(strSel);
    var url = "${createLink(controller:'country', action: 'wholeTestUnits', id: strSel)}"
    alert(url);
 }

送信ボタンをクリックしたときにそのURLアクションに移動したい

<button class="submit_small" onClick="GetSelectedItem();">
    <span><g:message code="default.button.submit.label" /></span>
</button>

これ${createLink}は機能していません。

4

6 に答える 6

3

JavaScript コードを GSP に含める必要がない、これを行うためのより良い方法は次のとおりです。

<button class="submit_small" onClick="GetSelectedItem();" data-url="${createLink(controller:'country', action: 'wholeTestUnits')}">
    <span><g:message code="default.button.submit.label" /></span>
</button>

function GetSelectedItem() {
    var button = event.target;
    var e = document.getElementById("country");
    var strSel =  e.options[e.selectedIndex].value;
    var url = button.getAttribute("data-url") + "/" + strSel;
}
于 2013-09-12T14:47:05.397 に答える
1

サーバー側/クライアント側に問題があると思います。createLink はサーバー上で実行され、JS はクライアント上で実行されます...

試す:

var url = '${createLink(controller:'country', action: 'wholeTestUnits')}' + strSel ;
于 2013-09-12T09:48:21.917 に答える
1

私が思うに、リンクで strSel の値を取得していません。これを試すことができます。

function GetSelectedItem()
{
        var e = document.getElementById("country");
        var strSel =  e.options[e.selectedIndex].value;
        alert(strSel);
        var url = "${grailsApplication.config.grails.serverURL}/country/wholeTestUnits/" + strSel
        alert(url);
}
于 2013-09-12T11:18:29.277 に答える