0

ユーザーがチェックボックスをチェックまたはチェック解除したときに、のformBean一部である属性を更新する必要があります。 属性の値は、デフォルトで、ページが読み込まれる前に に設定されます。 ユーザーがチェックを外すと、値を にしようとしています。firebug デバッガー を使用して値が変更されたことを確認できますが、フォーム オブジェクトの値は常に送信されたままです。ArrayListformBean
"on"formBean
"off"
"off""on"

私のJSPコードは以下です。間違った方法で値を設定している場合はお知らせください。

Struts アプリケーション

JSP でのロジックの表示:

    <input type="checkbox"
           name="importedFiles[<c:out value='${stts.count - 1}'/>].importEnabled"
           id="importedFiles[<c:out value='${stts.count - 1}'/>].importEnabled"
           onClick="replicateCheckbothis, <c:out value='${stts.count - 1}'/> )"
           <c:if test="${importedFiles.importEnabled != null}">checked</c:if> />

JS 経由の送信中にimportEnabled、arrayList の一部であるimportedFiles値を変更しようとしています。maintainDownloadForm使用されているロジックを以下に示します。

function checkSelectedAndImport()
{
    var anyClicked = "none";

    for(var i = 0; i < <c:out value='${maintainDownloadForm.importedFileLength}' />; i++)
    {
        var element = document.getElementById("importedFiles[" + i + "].importEnabled");

        if(element != null)
        {
            if(element.checked)
            {
                anyClicked = "true";
                element.setAttribute('value', 'on'); alert('Selected--->'+element.getAttribute('value'));
            }
            else
            {
                element.setAttribute('value', 'off');
                alert('Not Selected--->'+document.getElementById("importedFiles[" + i + "].importEnabled").value);

            }
        }
    }

    if(anyClicked != "none")
    {
        submitDGForm(getVMWareForm(),'saveImport');
    }
    else
    {
        alert("No rows have been selected for import. Please select data to import. To cancel the import, click on cancel.");
    }
}

上記のロジックではelse、ユーザーが期待どおりにチェックを外して印刷するとループに入ることができますが、ページがロードされる前と同じようにフォーム属性が常に残っているためalert、フォーム属性で同じことが更新されません。importEnabled"on"

コーディング ロジックに問題がある場合はお知らせください。また、同じ問題の修正も非常に役立ちます。

4

1 に答える 1

0

残念ながらできないと思います。私が使用する解決策は、フォームに文字列 (String[]) の配列を保持し、javascript を使用して HTML DOM に非表示の入力を追加 (または削除) することです。これらの非表示の入力には、ユーザーが選択したチェックボックスを一意に識別できる値があります。

于 2012-09-03T08:05:44.057 に答える