2017-10-20 66 views
0

我有一個JavaScript代碼來填充第二個選擇框的基礎上的第一個選擇,但我有一些麻煩,使其正常工作。更改第一個選擇記錄

如果我至少有2個選擇值,在更改事件時會正確觸發下一個選擇框,但是如果我只有一個選項,因爲更改事件是不可能的,我如何才能使它觸發下一個選擇框與加載的值?

<script type="text/javascript"> 
jQuery(document).ready(function() { 
$("#category").change(function(){ 
var selectedCategory = $("#category option:selected").val(); 
$.ajax({ 
    type: "POST", 
    url: "subcategories.php", 
    data: { category : selectedCategory } 
}).done(function(data){ 
    $("#subcategory").html(data); 
}); 
}); 

}); 
</script> 

基本上,如果我的代碼至少有2個選擇,它的工作原理:

<select name="category" class="form-control" id="category"> 
<option value="1">Category 1</option> 
<option value="2">Category 2</option> 
</select> 

Otherwhise如果只有一個選擇這是行不通的,因爲我可以不火的change事件:

<select name="category" class="form-control" id="category"> 
<option value="1">Category 1</option> 
</select> 

我想在不使用選擇框中的「選擇...」之類的「虛擬選擇選項」的情況下使其工作。什麼可能是實現它的最好方法。我花了好幾個小時才把它做好。

+0

你可以在初始頁面加載時將第二個設置爲1st嗎? – Confuzing

回答

3

事實上,如果選擇標籤中只有一個選項,則不會更改事件。做一個函數,並在加載文件後立即調用,並且在更改事件中

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     $("#category").change(function(){ 
      getSubCat();//get sub category after change event 
     }); 
     getSubCat();//get sub category after page load 
     function getSubCat(){ 
      var selectedCategory = $("#category option:selected").val(); 
      $.ajax({ 
       type: "POST", 
       url: "subcategories.php", 
       data: { category : selectedCategory } 
      }).done(function(data){ 
       $("#subcategory").html(data); 
      }); 
     } 
    }); 
</script> 
+0

我試過這段代碼,只在選擇框中更改時才起作用。 – Tiago

+0

@Tiago:對不起,我現在把代碼放在錯誤的地方。 – C2486

0

我找到了一個解決方案,但不知道它是否是最好的方法。等待您對此選項的擔憂。

基本上我加倍了代碼。 一個與變更事件,而另一個只是所選擇的選項:

<script type="text/javascript"> 
jQuery(document).ready(function() { 

var selectedCategory = $("#category option:selected").val(); 
$.ajax({ 
    type: "POST", 
    url: "subcategories.php", 
    data: { category : selectedCategory } 
}).done(function(data){ 
    $("#subcategory").html(data); 
}); 

$("#category").change(function(){ 
var selectedCategory = $("#category option:selected").val(); 
$.ajax({ 
    type: "POST", 
    url: "subcategories.php", 
    data: { category : selectedCategory } 
}).done(function(data){ 
    $("#subcategory").html(data); 
}); 
}); 

}); 
</script> 

這是做了正確的方法,或者我應該改變些什麼呢?

相關問題