jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – JavaScript运行时错误:无法获取未定义或空引用的属性’forEach’大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个aspx母版页应用程序,我在子aspx页面的asp:content部分有两个下拉列表控件.其中一个控件是从sql数据库填充的.另一个是根据从第一个下拉列表中选择的项目填充的.我试图在我的代码中使用 this solution,但是我收到一个错误

如何根据所选的州显示城市名称
我的代码块是:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>

    <script type="text/javascript">
        AL = new Array('Birmingham','Montgomery','Tuscaloosa');
        FL = new Array('Miami','FtLauderDale','Jacksonville');
        GA = new Array('Atlanta','Macon','Athens');

        populateSelect();

        $(function () {

            $('#ddlState').change(function () {
                populateSelect();
            });

        });

        function populateSelect() {
            category = $('#ddlState').val();
            $('#ddlCity').html('');

            eval(category).forEach(function (t) {
                $('#ddlCity').append('<option>' + t + '</option>');
            });
        }
    </script>  

<asp:DropDownList ID="ddlCity" runat="server" CssClass="stdFldWidth" onchange="setFDFlag()">
</asp:DropDownList>    

<asp:DropDownList ID="ddlState" runat="server" CssClass="stdFldWidth" DataSourceID="dsUSState"
    DataTextField="US_State" DataValueField="State_ID" AutoPostBack="true" > 
</asp:DropDownList>

更新:

Protected Sub ddlState_SelectedIndexChanged(sender As Object,e As System.EventArgs) Handles ddlType.SelectedIndexChanged
If ddlState.SelectedValue = "FL" Then
    DisplayRegulation(FL)
End If

解决方法

ASP.NET页面的常见问题,特别是如果您使用MasterPages.

生成页面将更改其元素ID.

您的问题的一个解决方案是为这些元素提供一个唯一的类,并在选择器中使用它而不是它们的ID:

<asp:DropDownList ID="ddlCity" runat="server" CssClass="stdFldWidth ddlCity" onchange="setFDFlag()">
</asp:DropDownList>    

<asp:DropDownList ID="ddlState" runat="server" CssClass="stdFldWidth ddlState" DataSourceID="dsUSState"
    DataTextField="US_State" DataValueField="State_ID" AutoPostBack="true" > 
</asp:DropDownList>

$(function () {
    var states = {
        AL: ['Birmingham','Tuscaloosa'],FL: ['Miami','Jacksonville'],GA: ['Atlanta','Athens']
    };

    function populateSelect() {
        $('.ddlCity').empty();

        var stateSelected = $('.ddlState').val();

        if (stateSelected) {
            states[stateSelected].forEach(function (sel) {
                $('<option>').val(sel).text(sel).appendTo($('.ddlCity'));
            });
        }
    }

    populateSelect();

    $('.ddlState').on('change',function() { 
        populateSelect();

        return true;
    });
});

使用@sebnukem建议编辑以将数据保存在对象中,这样就可以摆脱eval().

通过将整个代码放在jQuery文档就绪事件处理程序中进行更新.

通过在DropDownList的jQuery onchange事件处理程序中返回true来更新,以继续使用PostBack.

Demo

大佬总结

以上是大佬教程为你收集整理的jquery – JavaScript运行时错误:无法获取未定义或空引用的属性’forEach’全部内容,希望文章能够帮你解决jquery – JavaScript运行时错误:无法获取未定义或空引用的属性’forEach’所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: