0

リピーター内では、各行にドロップダウンがあります。ユーザーがドロップダウンから「拒否」を選択した場合、テキストボックスを表示して、テキストを入力できるようにします。

私が得ているjavascriptエラーは次のとおりです: エラー: TypeError: RejectedReasonBox is null

ジャバスクリプト

function RejectedShowText(sel, RejectedReasonId) {

        var RejectedReasonBox = document.getElementById(RejectedReasonId);

        window.alert(RejectedReasonId);

        if ( sel.options[sel.selectedIndex].value == 'Rejected' ) {

            RejectedReasonBox.style.display = '';
        }
        else {
                        RejectedReasonBox.style.display = 'none';
        }

    }

したがって、 RejectedReasonId の id 値を取得していないようですが、生成された html は正常に見えます。

 onchange="RejectedShowText(this,ContentPlaceHolder1_rePxOffers_RejectedReasonPanel_0);"

コードビハインド

dPxOfferStatus.Attributes.Add("onchange", "RejectedShowText(this," & RejectedReasonPanel.ClientID & ");")

HTML

<div id="PxOfferDetails">


            <table style="width: 100%;" class="dataInput dataInputBorder" cellpadding="0" cellspacing="0">
                <tr>
                    <th>Offer (£)</th>
                    <th>Offer (%)</th>
                    <th>Date</th>
                    <th>Offer Expiry</th>
                    <th>Extended</th>
                    <th>Offer Status</th>
                    <th>&nbsp;</th>
                    <th>&nbsp;</th>
                    <th>&nbsp;</th>
                    <th>&nbsp;</th>
                    <th>&nbsp;</th>
                    <th>&nbsp;</th>
                </tr>

                <tr>
                    <td><span id="ContentPlaceHolder1_rePxOffers_lPxOfferAmount_0">£110,000.00</span></td>
                    <td><span id="ContentPlaceHolder1_rePxOffers_lPxOfferPercent_0">84.62</span></td>
                    <td><span id="ContentPlaceHolder1_rePxOffers_lPxOfferDate_0">26/02/2013</span></td>
                    <td><span id="ContentPlaceHolder1_rePxOffers_lPxOfferExpiry_0">05/03/2013</span></td>
                    <td><input name="ctl00$ContentPlaceHolder1$rePxOffers$ctl01$tPxOfferExtended" type="text" id="ContentPlaceHolder1_rePxOffers_tPxOfferExtended_0" class="date" /></td>
                    <td><select name="ctl00$ContentPlaceHolder1$rePxOffers$ctl01$dPxOfferStatus" id="ContentPlaceHolder1_rePxOffers_dPxOfferStatus_0" class="small" onchange="RejectedShowText(this, &#39;ContentPlaceHolder1_rePxOffers_RejectedReasonPanel_0&#39;);">
    <option selected="selected" value="Awaiting Decision">Awaiting Decision</option>
    <option value="Accepted">Accepted</option>
    <option value="Rejected">Rejected</option>

</select>

                        <div id="ContentPlaceHolder1_rePxOffers_RejectedReasonPanel_0" style="display:none;">

                            <input name="ctl00$ContentPlaceHolder1$rePxOffers$ctl01$tPxRejectedReason" type="text" size="20" id="ContentPlaceHolder1_rePxOffers_tPxRejectedReason_0" />

</div>
                    </td>
                    <td></td>
                    <td><a id="ContentPlaceHolder1_rePxOffers_btnRecreatePxOffer_0" class="btnLinkMed">Recreate</a></td>
                    <td><input type="button" name="ctl00$ContentPlaceHolder1$rePxOffers$ctl01$btnUpdatePxOffer" value="Update" onclick="javascript:__doPostBack(&#39;ctl00$ContentPlaceHolder1$rePxOffers$ctl01$btnUpdatePxOffer&#39;,&#39;&#39;)" id="ContentPlaceHolder1_rePxOffers_btnUpdatePxOffer_0" class="btnSubmitSmall" /></td>
                    <td><a id="ContentPlaceHolder1_rePxOffers_btnEmailPxOffer_0" class="btnLinkMed">Email</a></td>
                    <td>&nbsp;</td>
                    <td><input type="image" name="ctl00$ContentPlaceHolder1$rePxOffers$ctl01$btnDeletePxOffer" id="ContentPlaceHolder1_rePxOffers_btnDeletePxOffer_0" title="Remove PX Offer" class="btnDelete" src="images/icon-delete.png" onclick="return confirm(&#39;Are you sure you want to remove this PX Offer?&#39;);" /></td>
                </tr>

            </table>

4

2 に答える 2

0

DIV をラップして表示したいテキスト ボックスがありましたが、DIV が非表示になっていて、これを表示/非表示にしようとしていました。

これが問題の原因だった理由はわかりませんが、DIV を削除してテキストボックスを表示/非表示にすることで問題を解決できました。

于 2013-10-17T14:34:54.747 に答える
0

交換:

dPxOfferStatus.Attributes.Add("onchange", "RejectedShowText(this," & RejectedReasonPanel.ClientID & ");")

と:

dPxOfferStatus.Attributes.Add("onchange", "RejectedShowText(this,'" & RejectedReasonPanel.ClientID & "');")

それが役に立ったことを願っています。

于 2013-10-17T12:01:17.463 に答える