Ajax选择即时更改默认值
问题描述:
我使用Ajax使用PHP返回的数组中的值填充选择的html元素。Ajax选择即时更改默认值
Ajax代码:
<script type = "text/javascript">
$(document).ready(function(){
$('#fds_categories').change(function() {
var template_id = $(this).val();
$.ajax({
type: "POST",
data: {
'username' : '<?php echo $user->username; ?>',
'categorie_id' : template_id
},
url: "ajax/fds_template_ajax.php",
success: function(data){
$('#fds_price').empty();
$.each($.parseJSON(data), function(index, element) {
if(element.p == 0){
$('#fds_price').append(
$('<option data-icon="man"></option>').val(element.id).html(element.name + ' Price: ' + element.pb + ' Zcard')
);
}else{
$('#fds_price').append(
$('<option data-icon="man"></option>').val(element.id).html(element.name + ' Price: ' + element.p + ' Bucks')
);
}
});
}
});
});
});
</script>
在那里
可悲的值不会改变选择元素的默认预览值。
例子:
GIF图像:https://gyazo.com/6aab1545ff143536c17e97eb5ef6315a
正如你所看到的,我首先选择在第一选择菜单中的“军”,那么项目将改变在第二选择菜单中的属性,黯然项目的默认预览将保持不变并不会改变。在这种情况下:“先生现场价格”。它在我选择了另一个项目后发生了变化。
但是,有没有办法改变默认预览项目,一旦我选择了第一个选择的值?
我想要什么:
1)从第一选择菜单中选择衬衫,
2)第二个选择菜单应立即改变,并表示:“坦克的价格”而不是“现场爵士价钱”。
有没有人有一个想法如何得到这个工作?
答
添加默认<option>
有没有价值
success: function(data){
var defOption ='<option value=""> Default text</option>';
// html() method replaces existing
$('#fds_price').html(defOption);
$.each($.parseJSON(data), function(index, element) {
.....
});
}
另外请注意,如果你设置dataType:'json'
你不需要自己解析响应