更改第一个选择记录
问题描述:
我有一个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>
我想在不使用选择框中的“选择...”之类的“虚拟选择选项”的情况下使其工作。什么可能是实现它的最好方法。我花了好几个小时才把它做好。
答
事实上,如果选择标签中只有一个选项,则不会更改事件。做一个函数,并在加载文件后立即调用,并且在更改事件中
<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>
答
我找到了一个解决方案,但不知道它是否是最好的方法。等待您对此选项的担忧。
基本上我加倍了代码。 一个与变更事件,而另一个只是所选择的选项:
<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>
这是做了正确的方法,或者我应该改变些什么呢?
你可以在初始页面加载时将第二个设置为1st吗? – Confuzing