我有一个页面,其中有三个下拉列表。当我选择第一个下拉,第二个是生成,当我选择第二个时,第三个是生成。它类似于选择一个国家,相关国家将来选择国家,相应的城市将来临。我通过ajax调用正确地从数据库获取数据,并且它正在显示。但是,这是我的问题:当我选择一个国家时,州下拉列表正在正常生成。但是,当我想改变国家价值时,新的州下降正在产生,同时旧的国家下降。怎么克服这个?提前致谢。感谢帮助。
<script>
jQuery(document).ready(function() {
// binds form submission and fields to the validation engine
jQuery("#preRegistrationForm").validationEngine();/*'attach', {promptPosition : "bottomRight"}*/
});
function getSubject(){
var technology=$("#technologyId").val();
$.get('${path}/GetSubject',{technologyname:technology},function(responseJson) {
var strs="<select id='subjectId' name='subjectId' onchange='getSubtopic()'><option >--select subject--</option>";
// select.find('option').remove();
$('option:selected', this).remove()
$.each(responseJson, function(index, value) {
strs=strs+"<option name='"+value+"' value='"+index+"'>"+value+"</option>";
});
strs=strs+"</select>";
$("#subjectDivId").append(strs);
});
}
//$("#brandId").empty();
function getSubtopic() {
var subject=$("#subjectId").val();
$.get('${path}/GetSubtopic',{subjectname:subject},function(responseJson) {
var str="<select id='subtopicId' name='subtopicId'><option >--select subtopic--</option>";
// select.find('option').remove();
$('option:selected', this).remove()
$.each(responseJson, function(index, value) {
str=str+"<option name='"+value+"' value='"+index+"'>"+value+"</option>";
});
str=str+"</select>";
$("#subtopicDivId").append(str);
});
}
</script>
答案 0 :(得分:0)
与代码一样,每次获得查询响应时都会生成一个选择。每次为您创建一个新的选择框。这似乎是你的问题。在生成新选择之前,请删除旧控件(使用控件ID),您将没事。
$('#subjectId').remove();
在添加选择框之前,将此行添加到getSubject()
方法中。
为别人做同样的事。阅读here
干杯!!