根据一个下拉列表的选择动态填充下拉列表

时间:2011-10-18 10:36:59

标签: javascript jquery jsp

我试图根据另一个下拉列表的选择来填充一个下拉列表。我使用struts框架并使用jquery来解决上面的问题陈述。我的代码在使用.json()方法对服务器进行GET调用时陷入困境。有人可以帮我解决这个问题。

我的jquery代码:

<div id="Symptoms" style="display:none;">
<html:form id="iamhere" method="POST" action="symptoms" >
<p></p>
<p>Enter/Choose ailment : 

<select id="diselc" name="AuthoringForm"  size="1" >
<option selected="selected"> </option>
<option>Malaria</option>
<option>High Fever</option>
<option>Cholera</option>
<option>Diarrhoea</option>
</select></p>
<p>Choose ailment classification : 
<select id="diselchild" name="AuthoringForm" > 
<option>High</option>
<option>Medium</option>
<option>Low</option> 
</select> 



<fieldset style="width: 381px; height: 126px; padding: 2">
<legend align="left"></legend>
 Tick off patient context :
<html:radio value="Men" name="AuthoringForm" property="patient_context" disabled="false"/>
Men
<html:radio value="Womwen" name="AuthoringForm" property="patient_context" disabled="false"/>
Women
<p>
<html:radio value="Child" name="AuthoringForm" property="patient_context" disabled="false"/>
Child
<html:radio value="Al" name="AuthoringForm" property="patient_context" disabled="false"/>
All
</fieldset>
<p>Enter Pre Conditions</p>
<p><html:textarea rows="2" name="AuthoringForm" cols="20" property="patient_precondition" ></html:textarea>
<p>Must Have Symptoms : 
May Have Symptoms :</p>
<p><html:textarea rows="2" name="AuthoringForm" cols="20" property="must_have_symptoms"></html:textarea>
<!-- <input type="submit" value="Submit" name="B2">-->
<html:textarea rows="2" name="AuthoringForm" cols="20" property="may_have_symptoms"></html:textarea>
<input type="submit" value="Submit" name="symptomsButton"><input type="reset" value="Reset" onclick="clear_form_elements(this.form);"></p>
</html:form>
</div>

我的jquery:

<script> 
            $(document).ready(function() { 
                $("#diselc").change(function(){ 
                    fillOptions('diselc','diselchild'); 
                    }); 
            }); 
            function fillOptions(parentId,ddId) {
                alert("atleast the call is being made in the fillOptions"+ddId);
                var dd = $('#' + ddId); 
                alert("the value being passed is "+dd);
                var jsonURL = 'http://localhost:8080/docRuleTool/decisiontreeAction.do?dd=' + ddId + '&val=' + $('#' + parentId + ' :selected').val(); 
                $.getJSON(jsonURL, function(opts)
                {
                alert("just after calling the servlet stuff ");
                    $('>option', dd).remove(); // Clean old options first. 
                    if (opts) { 
                        $.each(opts, function(key, value) { 
                            dd.append($('<option/>').val(key).text(value)); 
                        }); 
                    } else { 
                        dd.append($('<option/>').text("Please select parent")); 
                    } 
                }); 
            } 
 </script> 

有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

如@meloncholy所提出的那样发出错误回调

$.getJSON(jsonURL, function() {
 //your code here
  alert("success");
})
.error(function(jxhr) { alert(jxhr.ResponseText); });

查看错误处理程序是否被调用...

相关问题