Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用JavaScript中的值填充下拉列表?_Javascript_Jquery_Asp.net_C# 4.0_Tridion - Fatal编程技术网

如何用JavaScript中的值填充下拉列表?

如何用JavaScript中的值填充下拉列表?,javascript,jquery,asp.net,c#-4.0,tridion,Javascript,Jquery,Asp.net,C# 4.0,Tridion,我在Tridion CMS的扩展中向功能区工具栏按钮添加了一个按钮。点击按钮,弹出页面将显示两个下拉列表。通过更改第一个下拉控件中的值,我应该填充第二个下拉控件的值。在我的例子中,我使用的是ASP下拉列表控件。目前,我将把要填充的值硬编码到java脚本中的第二个下拉列表中。对于此要求,我使用以下代码,但我无法填充未标识标记的值 Java脚本代码: ABC.WCMS.RTFExtension.Popups.ButtonPopup.prototype._populate = function ()

我在Tridion CMS的扩展中向功能区工具栏按钮添加了一个按钮。点击按钮,弹出页面将显示两个下拉列表。通过更改第一个下拉控件中的值,我应该填充第二个下拉控件的值。在我的例子中,我使用的是ASP下拉列表控件。目前,我将把要填充的值硬编码到java脚本中的第二个下拉列表中。对于此要求,我使用以下代码,但我无法填充未标识标记的值

Java脚本代码:

ABC.WCMS.RTFExtension.Popups.ButtonPopup.prototype._populate = function () {    
    var selectedValue = $('#functionalcomponent').value;//First dropdown selected value
    var dropdownId = $("#Dd");//Second Dropdown Control

        switch (selectedValue) {

            case "Home Ware":
                dropdownId.append($("<option> </option>").val("Select Sub-Category").html(""));
                dropdownId.append($("<option> </option>").val("Air-Conditioners/Coolers").html("Air-Conditioners/Coolers"));              
                break;
            case "Education":
                dropdownId.append($("<option> </option>").val("Select Sub-Category").html(""));
                dropdownId.append($("<option> </option>").val("Colleges").html("Colleges"));
                break;
            default:
                dropdownId.append($("<option> </option>").val("Select Sub-Category").html(""));
                dropdownId.append($("<option> </option>").val("No Value").html("No Value"));

        }
    return true;
}
ASPX控件:

<%--Dropdown1--%>
<asp:DropDownList ID="functionalcomponent" runat="server"></asp:DropDownList>
<%--Dropdown2--%>
<asp:DropDownList ID="Dd" runat="server"></asp:DropDownList>

如何从外部JavaScript文件填充第二个下拉列表的值?

您可以使用以下方法,而不是按需添加值:

预先将所有项添加到DOM中

使用jQuery逻辑隐藏所需的项

你可以参考下面的帖子来获得提示


请看一看

我最近开发了一个GUI扩展,我们根据另一个下拉列表的值填充了一个下拉列表。当我使用javascript填充时,我有以下代码:

$j(c.SystemDropDown).append("<option value=\"" + value + "\">" + value + "</option>");
正如您所看到的,我的示例附加了整个标记,其中您的标记是使用.val指定的,也许您可以尝试这种方法


我的版本运行得很好:

感谢您的回复。这不符合我的标准。这就是我为实现级联下拉列表所做的全部工作。其中,将从第一个下拉列表值填充第二个下拉列表值。请给我一个解决方案。非常感谢您的回复。您似乎正在使用Tridion控件。您正在实现级联下拉列表。你能告诉我不进行页面刷新的逻辑吗?我们如何才能做到这一点?请帮助我解决这个问题。在我的例子中,我使用的是c.SystemDropDown,它在扩展中被定义为正常值,如果您将其更改为使用您的dropdown,它应该可以正常工作。请为我提供实现级联dropdown的逻辑。为什么我会这样问,因为当我尝试实现相同的功能时,我的页面正在刷新。请分享我非常需要的逻辑。您正在使用ASP.NET控件,因此很可能由于回发而刷新页面。你有没有尝试过在普通ASP.NET中不使用Tridion构建相同的逻辑?@Puff我尝试过用普通ASP.NET创建相同的逻辑。在这种情况下,页面也会被刷新。