2017-05-11 55 views
0

我有两个下拉列表在ASP.NET Web窗体中使用jQuery来填充它们并在父级更改时重新填充子级列表。父列表正在加载,但子列表未加载或更新。子记录被存储在文本文件中的一个文件夹,名为的TextData和安排,像这样:jQuery父/子动态下拉列表不能正常工作

<option>User Name</option> 
<option>User ID</option> 
<option>User ID Lower</option> 
<option>User Email</option> 
<option>User Phone</option> 
<option>User Fax</option> 

父记录也存储在一个文本文件名为MergeCodeGroups.txt根,其配置文件以类似的方式。以下是页面代码。有没有人看到我的错误?任何帮助是极大的赞赏! 谢谢! 迈克

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Test.aspx.vb" Inherits="TextControl2016.Test" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.10.2.js"></script> 

     <script type="text/javascript"> 
      // Load merge code groups and merge codes 
      function loadDDLMergeCodeGroups() { 
       $(document).ready(function() { 
        $("#ddlMergeCodeGroup").load("MergeCodeGroups.txt"); 
       }); 
      } 

      function loadDDLMergeCodes() { 
       $("#ddlMergeCodeGroup").change(function() { 
        $("#ddlMergeCode").load(encodeURI("textdata/" + $(this).val() + ".txt")); 
       }); 
      } 

     </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <script type="text/javascript"> 
      loadDDLMergeCodeGroups(); 
      loadDDLMergeCodes(); 
     </script>Merge Code Group 
     <select id='ddlMergeCodeGroup' name='ddlMergeCodeGroup'></select>&nbsp;&nbsp; 
      Merge Code&nbsp;&nbsp; 
     <select id='ddlMergeCode' name='ddlMergeCode'></select> 

    </div> 
    </form> 
</body> 
</html> 

回答

0

你的问题很可能是在这里:

$("#ddlMergeCode").load(encodeURI("textdata/" + $(this).val() + ".txt")); 

在部分$(this).val()你选择的选项的值,但你的选择有没有价值。所以改为:

$("#ddlMergeCode").load(encodeURI("textdata/" + $("#ddlMergeCodeGroup option:selected").text()+ ".txt")); 
+0

非常感谢Farzin的快速回复!我将你的第二次引用ddlMergeCode调整为ddlMergeCodeGroup,因为这是我们得到选择的地方,但不幸的是我得到了相同的结果。 – Mike

+0

您是否像当前版本一样编辑了我的答案?这不是真的,我的意思是$(“#ddlMergeCodeGroup option:selected”)。text()'。 –

+0

是的,我复制并粘贴了你所拥有的。 – Mike