0

私のドロップダウン(が入力されていますobjectDataSource):

<asp:DropDownList runat=server ID="ddlUserTypes" DataSourceID="odsUserTypes" AppendDataBoundItems=true DataTextField="UserType" DataValueField="Usertype">
<asp:ListItem Value="">-Please select one-</asp:ListItem>
</asp:DropDownList>

ドロップダウンの選択された値を取得する Javascript 関数:

<script type="text/javascript" language="javascript">
    var notRegistered = false;
    var email = '';
    var userType = document.getElementById("ddlUserTypes");
    var pow = userType.options[userType.selectedIndex].value;
    function PreRegister() {debugger;
        if (notRegistered) {
            location.href = '/Register.aspx?pageid=<%= ConfigHelper.RegistrationPageId %>&Email=' + encodeURIComponent(email)+'&asd='+encodeURIComponent(pow);
            return false;
        }
        return true;
    }
</script>

しかし、これはpow未定義を返し続けるだけで機能していませんか? これは、ユーザー タイプが null のままであるため、ユーザー タイプに何も割り当てられていないように見えるためでしょうか。このコードが機能しない理由を誰か知っていますか?

4

4 に答える 4

2

gdoron が述べたように、ASP.Net はドロップダウンの HTML id を、ID パラメーターとして設定したものとは異なるものにします<asp:DropDownList>。これが、JS がそれを見つけられない理由です。

最も簡単なのは、クラスをドロップダウンに割り当ててから、JS でクラスごとに要素をターゲットにすることです。

于 2013-07-19T11:44:14.407 に答える
1

これを使用してください。うまくいくことを願っています。

var e = document.getElementById("ddlUserTypes");
var strUser = e.options[e.selectedIndex].value;
于 2013-07-19T11:43:05.357 に答える
1
var userType = documentgetElemebyById('<%= ddlUserTypes.ClientID %>');

あなたはこれを読むべきです

于 2013-07-19T11:43:46.883 に答える