2011-08-27 172 views
0

我使用的是struts 1.2,我有一个非常普遍的要求,我有两个下面的下拉框。现在我想要当我们选择类别时,它应该填充subcatoegory选择框。我尝试使用JavaScript,但没有运气正在工作。根据第一个选择下拉列表填充其他选择下拉列表

请有人指导我。

我可以通过使用html选择。

<html:select property="cat" onchange="getSubcatValue(this.value);">  
<html:option value="0">Category</html:option> 
<html:optionsCollection name="PostaddForm" property="categoryList" label="catName" value="catID"/> 
</html:select> 



<html:select property="subCat" > 
<html:option value="0">Category</html:option> 
<html:optionsCollection name="PostaddForm" property="subCategoryList" label="label" value="value"/> 
</html:select> 
+0

那么,getSubcatValue()javascript函数是做什么的?你认为它应该做什么? –

+1

如果不知道你已经尝试了什么,很难提供帮助,所以发布你写的没有用的Javascript代码(然后解释如何以及为什么它没有工作)。只是说你没有运气对我们没有帮助,我们不介意读者。解释你预期会发生什么以及发生了什么。 –

+0

java脚本在这种情况下不起作用.... – Pedantic

回答

0

你为什么不尝试使用jQuery,这将是这样的:

<select id="mainDropDown" onchange="getSubcatValue()"> 
    //Options for mainDropDown list 
</select> 

<select id="subDropDown"></select> 

<script type="text/javascript> 
    function getSubcatValue() 
    { 
     var chosenValue = $("#mainDropDown").val(); 
     var options = $('#subDropDown').prop('options'); 
     options = []; 
     if (chosenValue == "something") { 
      for (var i = 0 ; i < 10 ; i++) { 
       options[i] = new Option(i+1, i); // populate the subDropDown with 10 options: 1, 2 ,3, 4, etc... 
       //The 1st parameter is the text for the option, the 2nd parameter is the value of the option 
      } 
     } 
    } 
</script> 

编辑:基于安东尼评论,我想补充一点,for循环只是为了展示目的,以帮助您了解如何填充选项。在现实世界中,例如,在我自己的Web应用程序中,我进行了一次Ajax调用,以检索XML中的选项数据以填充下拉列表。

希望它有帮助!

+1

使用jQuery是一个好主意。其余的东西看起来像是一种非常可怕的做事方式,对于任何不是非常简单的事情来说都是如此。他的下拉菜单是数据驱动的,所以不能保证他会知道包含在Javascript中的所有选项,或者他们将保持不变。不得不改变你的代码,因为你的数据已经改变了,这是一个可怕的情况。 –

+0

@Anthony你是对的! =),因为我不知道他是如何检索信息的,我只能向他提供这些信息。在我的Web应用程序中,我通过进行Ajax调用并处理XML结果来获取选项的数据。如果他想要做同样的事情,我可以帮助他确定更多的代码^^ –

+0

是的,我已经尝试过这种方法,但我想用其确定,真的非常感谢4您的输入.. – Pedantic

相关问题