Javascript onchange我想筛选一个具有动态名称的下拉列表

Javascript onchange我想筛选一个具有动态名称的下拉列表,javascript,Javascript,我遇到了一个复杂的javascript问题,请帮助 有两个下拉列表,属性名称为“动态”。用户可以添加额外的div,逻辑运行良好,因此它与我现在遇到的问题无关 当用户从下拉列表中选择产品时,我想显示与产品索引相关的年份。我可以得到产品名称和后缀,但唐;我不知道如何获取或设置会计年度属性属性 <script type="text/javascript"> function loadYear(obj) { alert("The attribute name is

我遇到了一个复杂的javascript问题,请帮助

有两个下拉列表,属性名称为“动态”。用户可以添加额外的div,逻辑运行良好,因此它与我现在遇到的问题无关

当用户从下拉列表中选择产品时,我想显示与产品索引相关的年份。我可以得到产品名称和后缀,但唐;我不知道如何获取或设置会计年度属性属性

<script type="text/javascript">

    function loadYear(obj) {
        alert("The attribute name is " + obj.name);
        var suffix = obj.name.match(/\d+/);
        alert("the suffix is  " +suffix);

        alert(" how to get the name and value of Fiscal_Year attribute that changes dynamically");

    }
</script>

<div class="row">
                <div class="form-group">
                    <div class="col-md-10">
                                    <select name="[0].Product" onchange="loadYear(this);">
                                            <option value="15>Corporate HQ</option>
                                            <option value="16">Data Campaign</option>
                                            <option value="17">Digital Products </option>
                                    </select>
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-8">
                        <select name="[0].FISCAL_YEAR">
                                    <option value="15">FY15</option>
                                    <option value="16">FY16</option>
                                    <option value="17">FY17</option>
                        </select>
                    </div>
                </div>

</div>

<div class="row">
                <div class="form-group">
                    <div class="col-md-10">
                                    <select name="[1].Product" onchange="loadYear(this);">
                                            <option value="15>Corporate HQ</option>
                                            <option value="16">Data Campaign</option>
                                            <option value="17">Digital Products </option>
                                    </select>
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-8">
                        <select name="[1].FISCAL_YEAR">
                                    <option value="15">FY15</option>
                                    <option value="16">FY16</option>
                                    <option value="17">FY17</option>
                        </select>
                    </div>
                </div>

</div>

功能加载年(obj){
警报(“属性名称为“+obj.name”);
var后缀=obj.name.match(/\d+/);
警报(“后缀为”+后缀);
警报(“如何获取动态更改的会计年度属性的名称和值”);
}
公司总部
数据活动
数字产品
2015财年
2016财年
2017财年

而不是像
[0]这样的名称。Product
您不能动态创建像
Product\u 0
财政年度\u 0
这样的名称,这将很容易,因为这样您就可以在loadYear函数中执行以下操作了

obj.name.replace('Product_', '');
这将为您提供所选产品的索引。。然后,您可以使用javascript访问年份


在你的逻辑中可能吗?

也许类似的东西会起作用:

function loadYear(obj) {
    alert("The attribute name is " + obj.name);
    var suffix = obj.name.match(/\d+/);
    alert("the suffix is  " +suffix);

    // Get the year value from the year selection
    var selectedYear = obj.value;
    // Find the corresponding FISCAL_SELECT element
    var fiscalSelects = document.getElementsByName("[" + suffix + "].FISCAL_YEAR");
    if (fiscalSelects != null && fiscalSelects.length > 0) {
        // Set the value (assuming only one element exists)
        fiscalSelects[0].value = selectedYear;
    }
}
根据要求,下面是使用jQuery实现的该函数的最后一部分:

// Get the year value from the year selection
var selectedYear = $(obj).val();
// Find the corresponding FISCAL_SELECT element
var fiscalSelects = $('[name="[' + suffix + '].FISCAL_YEAR"]');
if (fiscalSelects != null && fiscalSelects.length > 0) {
    // Set the value (assuming only one element exists)
    fiscalSelects[0].val(selectedYear);
}

您到底在使用jQuery吗?(我可以使用jQuery快速找到解决方案,否则我必须做一些研究)我将jQuery用于其他逻辑。我也可以用它来做这个。我用C#来检索值并添加后缀,这是我知道的唯一解决方案。我现在正在尝试这个选项。嗨,我接受这个作为我问题的答案!!如果你没有;我不介意您也可以使用Jquery为我提供一个解决方案,我可能需要将脚本的这一部分向前移动到Jquery。提前感谢您。更新的答案包括jquery solutionHi奶嘴,感谢您迄今为止的帮助。我想再问一个关于同一问题的问题。我正在与之斗争。我想清空下拉列表并从数据库中添加新列表。我尝试了fiscalSelects.empty()和fiscalSelectsappend($('',{value:item.fy_id,text:item.fy_year}));我认为这取决于你把逻辑放在哪里。只要对“fiscalSelects”对象有一个良好的引用,这些行就应该执行您试图执行的操作。确保您使用的“fiscalSelects”实例是对DOM元素的活动引用。您可能需要执行另一个jquery选择来获得正确的引用。如果所有这些看起来都不错,您可能希望查看以下信息: