3

フォームに 2 つの HTML 選択があります。最初のものは呼び出されavailable、いくつかのオプションが含まれています。

<select name="sortedby" multiple="multiple">
    <option value="start">
        <xsl:if test="@sortedby='start'">
            <xsl:attribute name="selected">true</xsl:attribute>
        </xsl:if>
        Start time
    </option>

    <option value="thread_id">
        <xsl:if test="@sortedby='thread_id'">
            <xsl:attribute name="selected">true</xsl:attribute>
        </xsl:if>
        Thread Id
    </option>

    <option value="user_name">
        <xsl:if test="@sortedby='user_name'">
            <xsl:attribute name="selected">true</xsl:attribute>
        </xsl:if>
        Username
    </option>
</select>

2 番目が呼び出さyourselectionれ、最初は空です。

<select name="sortedby_target" multiple="multiple">
</select>

選択したオプションを から削除してavailableに移動するボタンがありますyourselection

このボタンは、使用できるが変更できないライブラリから JavaScript 関数を呼び出します。

基本的には問題なく動作します。ただし、ちょっとした不便があります。ユーザーが から に 1 つまたは複数のオプションを移動するavailableyourselection、それらはデフォルトでは「到着時に」選択されません。そのため、現在、ユーザーは でオプションを選択して にavailable移動しyourselection、再度 で手動で選択してからyourselectionフォームを送信する必要があります。

私が望むのは、到着したものはすべてyourselectionデフォルトで選択済みとしてマークする必要があるということです。何か案は?

アップデート!すべての要素を選択できる関数があります:

function selectAllOptions(obj) {
    if (!hasOptions(obj)) { return; }
    for (var i = 0; i < obj.options.length; i++) {
        obj.options[i].selected = true;
    }
}

しかし、問題はそれをどのように呼び出すかです。そのため、別のボタンを追加したくありません。

onfillselectに似たようなものがあるはずです。

4

3 に答える 3

0
<input type="submit" onclick="selectAllOptions(sortedby_target);" />

また

<form onsubmit="selectAllOptions(sortedby_target);"></form>

テーブルの列を変更しようとすると、 http: //demo.redmine.org/projects/asdf/issuesでヒントを得ることができ ます。

于 2013-06-17T14:42:48.770 に答える
0

更新されたこれを試してください

HTML

<select name="sortedby" multiple="multiple" id="sortedby" onchange="putvalue()">
    <option value="start">Start time</option>
    <option value="thread_id">Thread Id</option>
    <option value="user_name">Username</option>
</select>

<select name="sortedby_target" id="sortedby_target" multiple="multiple" ></select>

脚本

function putvalue(){
    $('option[value="' + $('#sortedby_target').val() + '"]').prop('selected','');
    $("#sortedby_target").append('<option value="' + $('#sortedby').val() + '" selected>' + $('#sortedby').val() + '</option>');
    $("#sortedby option[value=" + $('#sortedby').val() + "]").remove();
}

これが役立つことを願って、最初の解決策についてお詫び申し上げます。

選択したすべてのアイテムを選択したい場合は、この行を削除します

$('option[value="' + $('#sortedby_target').val() + '"]').prop('selected','');
于 2013-06-17T12:22:32.407 に答える