2015-02-24 51 views
0

我遇到了AJAX和JQUERY的問題。使用AJAX初始化jQuery Multiselect

我有一個表格,裏面有一個標籤。選擇一個選項後,我使用AJAX生成一個公式,用數據庫中的一些數據填充並顯示它。

我想用jQuery UI MultiSelect Widget

的問題是,我需要初始化與jQuery選擇,但是當我產生了新的內容在文件中調用這個函數,它不工作:(它的工作原理以及如果我不使用AJAX)。

<script type="text/javascript"> 
     $(function(){ 

      $("#ExampleSelect").multiselect({ 
       selectedList: 4 
      }); 

     }); 

</script> 

的結構如下:與含有正常和其將包含AJAX調用後所產生的元件的主要形式

  • PHP文件。 (onChange事件在<select>)。
  • Ajax的文件,它包含了jQuery UI多選其中港島線在主PHP的形式被顯示(在<div>標記內)

function LoadDiv() 
{ 

    var xmlhttp; 

    var serie_id = document.getElementById('serie_id').value; 


    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("divForm").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("POST","divDataManagement.php",true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send("serie_id="+serie_id); 

} 

$.ajax({ 

     success: function(){ 
       $("#ExampleSelect").multiselect("destroy").multiselect({ 
        selectedList: 4 
       }); 

    } 
}); 
  • PHP文件。

<select id = "ExampleSelect" multiple> 
         <option value="option1">Option 1</option> 
         <option value="option2">Option 2</option> 
         <option value="option3">Option 3</option> 

       </select> 

感謝您的幫助。

回答

3

使用AJAX成功方法初始化它。

$.ajax({ 
... 
success: function(){ 
     $("#ExampleSelect").multiselect({ 
      selectedList: 4 
     }); 
} 
... 

如果您對選定的multiselect實例進行了更改,請在更改後將其銷燬並重新初始化。

$.ajax({ 
... 
success: function(){ 
    $("#ExampleSelect").multiselect("destroy").multiselect({ 
     selectedList: 4 
    }); 
} 
... 

如果您使用XMLHttpRequest而不是jQuery ajax,則應該先在onreadystatechange方法中多選。

xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("divForm").innerHTML=xmlhttp.responseText; 
     $("#ExampleSelect").multiselect({ 
      selectedList: 4 
     }); 
    } 
} 
+0

它不起作用。選擇顯示,但不像多選元素。 (這與您未初始化選擇時的情況相同)。我建議您更新帖子以添加我的ajax代碼。 – Mastor 2015-02-24 13:31:51

+0

你能顯示你的html標記和js代碼嗎? – 2015-02-24 13:33:09

+0

我使用js文件和包含