我有一个按钮,可以打开一个模态并执行ajax来填充字段...........
$(document).on('click', '.renew', function(){
var user_id3 = $(this).attr("id");
$.ajax({
url:"fetch.php",
method:"POST",
data:{user_id3:user_id3},
dataType:"json",
success:function(data)
{
$('#businessModal').modal('show');
$('#requested_by').val(data.requested_by);
$('#form_type').val(data.form_type);
$('#bus_type').find('option[value="'+data.bid+'"]').prop('selected', true);
}
})
//the code that i tried
var val = $('#bus_type').find(":selected").val();
alert(value);
});//END
我希望在点击按钮后获得所选选项的值,但在第一次点击按钮时,我总是得到的值是第一个选项选择,但在第二次单击时我已经获得所选选项的值
//select option
<label>Type of Business</label>
<select class="form-control" name="bus_type" id="bus_type">
<?php
foreach ($result as $value) {
echo "<option value=".$value['id'].">".strtoupper($value['name'])."</option>";
}
?>
</select>
答案 0 :(得分:0)
这是一个异步问题。您正在尝试在ajax调用完成之前获取所选选项并选择一个选项,因此默认情况下,第一个选项是&#34;选择&#34;一。您需要像这样修改代码:
$(document).on('click', '.renew', function(){
var user_id3 = $(this).attr("id");
$.ajax({
url:"fetch.php",
method:"POST",
data:{user_id3:user_id3},
dataType:"json",
success:function(data)
{
$('#businessModal').modal('show');
$('#requested_by').val(data.requested_by);
$('#form_type').val(data.form_type);
$('#bus_type').find('option[value="'+data.bid+'"]').prop('selected', true);
// this needs to be here
var val = $('#bus_type').find(":selected").val();
alert(value);
}
})
});//END