我的 View 中有一个选项列表,它通过 ajax 在 $(document).ready()
中获取其选项设置 在此 ajax 调用之后,我想将此字段的值设置为使用.val()
我的 ajax 调用是通过以下函数进行的:
function getOrganisations(date, id, blank) {
$.get(myBaseUrl + "/placements/getTempsOrgsForTimesheets/" + blank + "?date=" + date + "&id=" + id,
function (data, status) {
$(".organisation").html(data);
});
}
此函数运行良好并正确填充列表
如果在此之后我尝试设置此列表的值,则使用
不起作用$("#org_" + rel).val($("#org_" + rel).attr("aVal"));
如果我在浏览器的控制台中输入此内容,它会正常工作并更新该字段。
有什么想法吗?
<div class="input select"><select name="timeData[organisation_id][thu]" class="organisation table-data table-row-3" aval="38" rel="3" id="org_3"><option value="0"> </option><option value="38">DFS Cork</option></select></div>
我已经添加了
console.log(document.getElementById("org_" + rel));
就在我尝试设置值并得到以下结果之前
<select name="timeData[organisation_id][thu]" class="organisation table-data table-row-3" aval="38" rel="3" id="org_3"><option value="0"> </option><option value="38">DFS Cork</option></select>
最佳答案
我认为这是一个异步问题。
它可以在您的浏览器控制台中运行,因为那时 AJAX 调用已经完成。
确保您在回调函数中添加了该行。
function (data, status) {
$('#place_' + rel).html(data);
$("#org_" + rel).val($("#org_" + rel).attr("aVal"));
});
<小时/>
如果您不想将逻辑直接添加到 getOrganizations
函数中,则可以包含 callback
参数:
function getOrganisations(date, id, blank, callback) {
$.get(myBaseUrl + "/placements/getTempsOrgsForTimesheets/" + blank + "?date=" + date + "&id=" + id,
function (data, status) {
$(".organisation").html(data);
if (typeof callback === 'function'){
callback();
}
});
}
然后像这样使用它:
getOrganisations('date_value', 'id_value', 'blank_value', function(){
$("#org_" + rel).val($("#org_" + rel).attr("aVal"));
});
关于javascript - $(selector).val() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224100/