jquery動態新增元素無法獲取到值
阿新 • • 發佈:2021-02-03
問題描述:通過選擇【賬戶】,動態新增【資金】的元素,
並且通過獲取【賬戶】【資金】的值,進行查詢。
但是獲取的資金元素的值是undefine。
$("select[name='proAccout']", container).change(function () { var params = {}; var proAccout = $(this).val(); params["proAccout"] = $.trim(proAccout); if (params["proAccout"] != "") { getAccIDByProAccout(params); } else { $("div[name='accID']", container).empty().append('<select class="select input" name="accID"></select>'); } var accID = $("select[name='accID']", container).val(); params["accID"] = accID ? $.trim(accID) : ""; // if (params["proAccout"] != "" && params["accID"] != "" ) { PRODUCT_CX(params); //查詢相關資訊 } }).change();
var getaccIDByProAccout= function (params) { base_ajaxPost("url", *true*, params, "json", function (data, status) { if (data && data.success && parseInt(data.code) > 0) { var result = data.object; //拼接資金select下來選單 var containerDiv = $("div[name='accID']", container).empty(); if (result && result.length > 0) { containerDiv.append('<select class="select input" name="accID"></select>'); for (var i = 0; i < result.length; i++) { $("select[name='accID']", containerDiv).append('<option value="' + result[i].accID+ '" selected="selected">' + result[i].accountName + '</option>') } } else { containerDiv.append('<select class="select input" name="accID"></select>' + '<div style="display: none;">' + data + '</div>'); } } else { $("div[name='accID']", container).empty().append('<select class="select input" name="accID"></select>' + '<div style="display: none;">' + data + '</div>'); } }, function (text, msg, e) { Alert(msg, null); } ); };
解決方案:由於非同步請求,請求還沒完成,就去獲取val(),導致取到的值是undefine,將非同步改成同步,則可以解決。
var getAccIDByProAccout= function (params) {
base_ajaxPost("url",**false**, params, "json",
function (data, status) {
...
}
}
);