动态下拉列表未加载模态

时间:2018-02-12 12:54:19

标签: javascript php jquery twitter-bootstrap

我有一个依赖动态下拉列表,但是只要我将其包含在模态中,它就可以正常工作。

这是我在模态中的代码:

<script src="plugins/jQuery/2.1.1.jquery.min.js"></script>
<script src="js/jquery.form.js"></script>

<script type="text/javascript">
$(document).ready(function(){
    $('#BugMaster').on('change',function(){
        var bugmasterID = $(this).val();
        if(bugmasterID){
            $.ajax({
                type:'POST',
                url:'ajax/bugs/populate.cat.php',
                data:'id_bug_master='+bugmasterID,
                success:function(html){
                    $('#BugMasterCat').html(html);
                }
            }); 
        }else{
            $('#BugMasterCat').html('<option value="">Select BugMaster first</option>');
        }
    });
});
</script>

这是带有列表的表单的html部分:

<select class="form-control" name="BugMaster" id="BugMaster">
 <option value="0" selected="selected">Please select module</option>
   <?
    while($r_b_c = mysqli_fetch_array($q_b_c)){
   ?>
  <option value="<? echo $r_b_c['id_bug_master']; ?>"><? echo $r_b_c['name']; ?>
  </option>
 <? } ?>
 </select>

这是依赖列表

<select name="BugMasterCat" id="BugMasterCat">
 <option value="">Select country first</option>
</select>

'populate.cat.php'文件如下所示:

if(isset($_POST["id_bug_master"]) && !empty($_POST["id_bug_master"])){

  $id_bug_master = clean_data($_POST['id_bug_master']);

   $q_cat = mysqli_query($sqllink,"SELECT * FROM bugs_categories
    WHERE valid='1' AND id_bug_master='$id_bug_master'");

    while($r_cat = mysqli_fetch_array($q_cat)){
        echo "<option value='$r_cat[id_cat]'>$r_cat[name]</option>";
    }
}

然后,如果我直接从页面加载它,所有这一切都可以正常工作,但是一旦我在模态中打开它,它就会失败并且不会显示任何类别。我认为它与$(document).ready(未加载的function()有关。

不工作我的意思是没有加载第二个下拉列表。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您的下拉列表中没有附加任何事件

更改您的代码:

... $(&#39;#BugMaster&#39;)。on(&#39; change&#39;,function(){....

$(文件).on(&#39;点击&#39;,&#39;#BugMaster&#39;,function(){

答案 1 :(得分:0)

您需要从模型本身加载JAVASCRIPT代码,而不是从父/ Base页面加载。

但是如果你想使用另一个使用委托或使用内联javascript函数调用的选项。

$(document).delegate('#BugMaster', 'change', function(){
    //Implement your code here
});

                            OR 

<select class="form-control" name="BugMaster" id="BugMaster" onchange="CALLJAVASCRIPTFUNCTIONHERE();">