0

私の機能。ユーザーが選択項目を変更すると、選択されたインデックスを取得します。

$(function itemchange() {
     var index = document.getElementById('columnList').selectedIndex;
     if (index != -1) {
         alert(index);
     }
 });

私のhtmlタグ。選択項目をパネルに入れました。モーダルウィンドウに配置されたこのパネル:

<asp:Panel ID="ModalPanel" runat="server" Width="700px" Height="500px" BackColor="GhostWhite">
    <div>
    <br />
    <div style="float:left;">
        <select size="4" id="columnList" onchange="itemchange" style="height:200px;">
            <option value="Code">Code</option>
            <option value="Name">Name</option>
            <option value="P">P</option>
            <option value="Desc">Desc</option>
            <option value="Object">Object</option>
            <option value="User name">User name</option>
            <option value="Num">Num"</option>
            <option value="Commant">Commant</option>
            <option value="Prod">Prod</option>
            <option value="Test">Test</option>
        </select>
    </div>
    <div style="clear:left;">
     <asp:Button ID="OKButton" runat="server" Text="Close" />
    </div>
    </div>
</asp:Panel>
4

1 に答える 1

1

あなたはすべきではありません:

$(function itemchange() {
    var index = document.getElementById('columnList').selectedIndex;
    if (index != -1) {
        alert(index);
    }
});

関数のスコープが window オブジェクトにないためです。やったほうがいい:

$(function(){
    itemchange();
});

function itemchange() {
    var index = document.getElementById('columnList').selectedIndex;
    if (index != -1) {
        alert(index);
    }
}

次に、関数のスコープがウィンドウ オブジェクトに変更され、実行時に実行されますitemchange()。また、DOM がロードされたときにも実行されます (あなたがそれを望んでいたと思います)。

于 2013-01-16T09:25:02.397 に答える