3

一部のラジオボタンとテキストボックスがドロップダウンの選択に依存するjspがあります。
これが私のjspとjavascriptのコードです。

jsp

         <s:form action="crInquiry" name="form">    
            <s:select name="filterValue" list="headerList"
    onchange="OnChange(this.form.filterValue);" />
            <s:radio name="filter" list="#{'STATUS_FILTER_START':'START','STATUS_FILTER_END':'STOP'}" 
label="Stage"></s:radio>
            <s:textfield disabled="true" value="0" name="count" theme="css_xhtml"></s:textfield>
            <s:radio name="ascOrder"  list="#{'ASC':'ASC','DESC':'DESC'}"></s:radio>
            <s:submit value="Filter" onclick="gotopage('FilteredInquiryLog')"></s:submit>
            <s:submitvalue="Details" onclick="gotopage('crInquiry')"></s:submit>
            </s:form>

javascript

<script type="text/javascript">
    function OnChange(dropdown) {
        var myindex = dropdown.selectedIndex;
        document.form.filter[0].disabled = false;
        document.form.filter[1].disabled = false;
    if (myindex == 8) {
            alert("8");
            document.form.filter[0].disabled = true;
            document.form.filter[1].disabled = true;
            document.form.count.disabled = false;
            document.form.submit.disabled = false;
        }
        else if (myindex == 9) {
            alert("9");
            document.form.filter[0].disabled = true;
            document.form.filter[1].disabled = true;
            document.form.count.disabled = true;
            document.form.submit.disabled = false;
        }

        else{
            document.form.filter[0].disabled = false;
            document.form.filter[1].disabled = false;
            document.form.count.disabled = true;
            document.form.submit.disabled = false;
            }
        }


    function gotopage(actionname)
    {   
            document.form.action=actionname+".action";
            document.form.submit();
    }
</script>

問題は、ドロップダウンで要素番号を言う項目を選択するときです。8または9なので、javascriptのラジオボタンは両方で無効にする必要があります。テキストフィールドとラジオボタンは9で無効にする必要があります。アイテムを選択すると、依存するラジオボタンまたはテキストフィールドが完全に無効になりますが、送信すると、同じjsp。私のJavaScriptの問題は何ですか?

4

2 に答える 2

2

ページのonloadイベントでもドロップダウン値を確認する必要があります。

このようなもの

<script type="text/javascript">

/**
* This function will be called twice - once on onChage event, and once on onLoad event
*/
    function OnChange() {
    dropdown = document.getElementById('myDropDown');
        var myindex = dropdown.selectedIndex;
        document.form.filter[0].disabled = false;
        document.form.filter[1].disabled = false;
    if (myindex == 8) {
            document.form.filter[0].disabled = true;
            document.form.filter[1].disabled = true;
            document.form.count.disabled = false;
            document.form.submit.disabled = false;
        }
        else if (myindex == 9) {
            document.form.filter[0].disabled = true;
            document.form.filter[1].disabled = true;
            document.form.count.disabled = true;
            document.form.submit.disabled = false;
        }

        else{
            document.form.filter[0].disabled = false;
            document.form.filter[1].disabled = false;
            document.form.count.disabled = true;
            document.form.submit.disabled = false;
            }
        }


    function gotopage(actionname)
    {   
            document.form.action=actionname+".action";
            document.form.submit();
    }
</script>

<body onload="OnChange()">
<s:form action="crInquiry" name="form">    
            <s:select name="filterValue" list="headerList" id="myDropDown"
    onchange="OnChange();" />
            <s:radio name="filter" list="#{'STATUS_FILTER_START':'START','STATUS_FILTER_END':'STOP'}" 
label="Stage"></s:radio>
            <s:textfield disabled="true" value="0" name="count" theme="css_xhtml"></s:textfield>
            <s:radio name="ascOrder"  list="#{'ASC':'ASC','DESC':'DESC'}"></s:radio>
            <s:submit value="Filter" onclick="gotopage('FilteredInquiryLog')"></s:submit>
            <s:submitvalue="Details" onclick="gotopage('crInquiry')"></s:submit>
            </s:form>
于 2012-04-04T11:52:07.417 に答える
1

あなたの問題を正しく理解していれば、Javascriptに問題はないと思います。
送信前と送信後のページデータ間の通信がないため、問題が発生します。

この問題は、次のいずれかの方法で解決できます。1.本体の「OnLoad」イベントでJavaScriptを呼び出すと、同じように機能します。
2.ページの現在のステータスをいくつかのコントロール(テキストフィールドなど)に保存し、ページの他のデータと一緒に送信します。ロード時(onLoadまたはJSPページの最後の場合)、そのフィールドの値を使用して状態を復元できます。

これがあなたのために働くことを願っています。

于 2012-04-04T11:49:44.370 に答える