2013-06-13 57 views
1

要求: <select1>包含幾個選項(佔位符文本=「選擇新的或二手車」) <select2>禁用不帶選項(佔位符文本=「選擇製造商」)jQuery的選擇2阿賈克斯鏈選擇

<select1>用戶選擇一個選項填充 <select2>帶結果從1

利用Jquery的選擇二插件

我「已經得到了鏈接選擇工作,正確填充選擇2,也使用選擇2插件

問題: 我想佔位符文本說‘5個結果發現’時,其結果得到了我 想佔位符文字說「0搜索結果」的時候沒有結果,回到殘疾人 目前,佔位符文本改變第一選擇,當重新選擇它攪亂了選擇2佔位

HTML:

//<select1> 
<select name='category_id' id='category_id'> 
<option value='1'>New</option> 
<option value='2'>Used</option> 
</select> 

//<select2> 
<select name='make_id' id='make_id'><option value=''></option></select> 

//javascript 
<script type='text/javascript'> 
    $(document).ready(function() { 
     $('#category_id').select2({ 
      placeholder: 'Select new or used Vehicles', 
      allowClear: true 
     }); 
     $('#make_id').select2({ 
      placeholder: 'Select Manufacturer', 
      allowClear: true 
     }); 

     $('#category_id').change(function() { 
      var selectedCategory = $('#category_id option:selected').val(); 
      $.ajax({ 
       type: 'POST', 
       url: 'ajax.php', 
       dataType: 'html', 
       data: { 
        a: 'dropDownsHome', 
        c: selectedCategory 
       }, 
       success: function(txt){ 
        //no action on success, its done in the next part 
       } 
      }).done(function(data){ 
       //get JSON 
       data = $.parseJSON(data); 
       //generate <options from JSON 
       var list_html = ''; 
       $.each(data, function(i, item) { 
        list_html += '<option value='+data[i].id+'>'+data[i].make+'</option>'; 
       }); 
       //replace <select2 with new options 
       $('#make_id').html(list_html); 
       //set to enabled|disabled 
       if (data.length > 1) { 
        $('#make_id').select2('enable', true); //enable form 
       }else{ 
        $('#make_id').select2('enable', false); //disable form 
       } 
       //change placeholder text 
       $('#make_id').select2({placeholder: data.length +' results'}); 
      }) 
     }); 
    }); 
</script> 

// JSON結果從ajax.php(如果沒有結果,則返回假) [{ 「ID」: 「1」, 「使」: 「福田」},{ 「ID」: 「4」 「使」: 「現代」},{ 「ID」: 「5」, 「使」: 「KIA」},{ 「ID」: 「2」, 「使」: 「質子」},{ 「ID」 「2」, 「使」: 「質子」},{ 「ID」: 「3」, 「使」: 「塔塔」},{ 「ID」: 「3」, 「使」: 「塔塔」}, { 「ID」: 「6」, 「作」: 「豐田」}]

回答

3

嘗試升級插件,

我與3.4.0版本嘗試啓用和禁用工作正常,並添加

list_html += ' <option value=""></option>'; 

上面的代碼沿線,那麼佔位符也將show..I已paisted下面

//generate <options from JSON 
      var list_html = ''; 
      list_html += ' <option value=""></option>'; 

      $.each(data, function(i, item) { 
       list_html += '<option value='+data[i].id+'>'+data[i].make+'</option>'; 
      }); 
      //replace <select2 with new options 
      $('#make_id').html(list_html); 
      //set to enabled|disabled 
      if (data.length > 1) { 
       $('#make_id').select2('enable', true); //enable form 
       $('#make_id').select2({placeholder: data.length +' results'}); 

      }else{ 

       $('#make_id').select2('enable', false); //disable form 
       $('#make_id').select2({placeholder: 0 +' results'}); 


      } 
+0

編輯的代碼,我會嘗試這個現在感謝..我使用的版本:/ * 版權所有2012伊戈爾Vaynberg 版本:3.4.0時間戳:Tue May 14 08:27:33 PDT 2013 – Mark

+0

工作,謝謝!我仍然不明白它爲什麼起作用,但至少我可以繼續這個項目......已經在這樣的小事情上浪費了很多時間。 TX! – Mark

+0

+1解決了鏈接國家/州select2的問題。謝謝。 –