在第二次更改第一个下拉列表值时,再次生成新的下拉列表以及旧的第二个下拉框

时间:2015-04-20 06:22:04

标签: jquery

我有一个页面,其中有三个下拉列表。当我选择第一个下拉,第二个是生成,当我选择第二个时,第三个是生成。它类似于选择一个国家,相关国家将来选择国家,相应的城市将来临。我通过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>

1 个答案:

答案 0 :(得分:0)

与代码一样,每次获得查询响应时都会生成一个选择。每次为您创建一个新的选择框。这似乎是你的问题。在生成新选择之前,请删除旧控件(使用控件ID),您将没事。

$('#subjectId').remove();

在添加选择框之前,将此行添加到getSubject()方法中。 为别人做同样的事。阅读here

干杯!!