4

削除するフィールドを選択する必要があるgrailsプロジェクトがあり、[削除]をクリックすると、選択したすべてのアイテムを削除する関数が必要です。

htmlコード:

<form name="bookForm" action="list" method="post">
    ....
    <g:link controller="book" action="delete">Delete</g:link>
    ....
    ....
    <g:checkBox id="select_all" name="select_all" value="" onclick="selectAll();" />
    ....
    <g:each in="${bookList}" status="i" var="bookInstance">
        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
            <td><g:checkBox id="${bookInstance.id}" name="delete_checkbox" value="" /></td>
        </tr>
    </g:each>
    ....
</form>

javascriptコード:

<script type="text/javascript">
    function selectAll(){//this function is used to check or uncheck all checkboxes
        var select = document.getElementById("select_all");
        var checkboxes = document.forms['bookForm'].elements['delete_checkbox'];
        if (select.checked){
            for (i = 0; i < checkboxes.length; i++) checkboxes[i].checked = true;
        }else{
            for (i = 0; i < checkboxes.length; i++) checkboxes[i].checked = false;
        }
    }//this function works fine
</script>

問題:

リストgspのすべてのチェックボックスをオンにするアクションが必要です。チェックされている場合は、それらのIDを取得し、IDごとにレコードを削除します。

groovyまたはjavascriptのいずれかでそれを行うことはできますか?

4

2 に答える 2

1

コードの問題は、checkbox=""の値を設定することです。値はサーバーに送信されるものであるため、これは正しくありません。

次のように変更する必要があります。

        <td><g:checkBox id="${bookInstance.id}" name="delete_checkbox" value="${bookInstance.id}"" /></td>
于 2012-08-10T00:19:06.723 に答える
0

チェックボックスを次のように書き直します。

<g:checkBox id="delete_checkbox" name="delete_checkbox" value="${bookInstance.id}" />

したがって、送信すると、パラメータマップ内に_delete_checkboxまたはdelete_checkboxというIDの配列取得ます。取得しているものを確認するには、アクション内にパラメーターを出力してみてください。

println params

を使用して、目的の配列を取得できますparams['nameOfTheAttribute']。IDの配列を取得したら、それを繰り返し処理してすべて削除します。

于 2012-08-09T14:32:44.193 に答える