[英]After Populating a Select2 Dropdown List How Can I Force the Element Title to remain Displayed
在頁面加載時,我填充一個Select2 Select->Option
列表,然后使用此處的Jquery技術綁定change
事件:綁定加載+更改同時進行,以便我可以控制更改事件以加載其他信息。 現在,除此以外,這一切都很好,這就是問題所在。
用函數fillProjectSelect();
填充Select->Option
列表后fillProjectSelect();
列表中的第一個選項顯示為默認文本,這意味着顯示的項目上的更改事件不會觸發,因為它不是更改。 自然,這會引起很多混亂。
因此,問題是如何強制Select2選項文本顯示列表標題(恰好是“ Select a Project
而不是列表中的第一個元素)?
這是一個代碼片段:
fillProjectSelect();
$( "#projectSelector" ).bind ('change', function () {
var val = $("#projectSelector").val();
$( "#project_description" ).text( projectData[val].description );
$( "#contract_sum" ).text( projectData[val].contract_sum );
$( "#percentage_fee" ).text( projectData[val].percentage_fee );
$( "#fee" ).text( projectData[val].fee );
var project_ID = projectData[val].project_ID;
etc...
})
為了以防萬一,我還添加了fillProjectSelect()
代碼。
function fillProjectSelect() {
var projectIndex = 0;
getProjectData(function(data) {
console.log(data)
var combo = $(".myselect")[projectIndex];
for (var i = 0; i < data.projectData.length; i++) {
projectData[i] = data.projectData[i];
var option = document.createElement("option");
option.setAttribute("value",i);
// option.setAttribute("selected",true);
option.innerHTML=projectData[i].name;
combo.appendChild(option);
}
});
}
以防萬一有人感興趣,似乎有些破解似乎有用。 您要做的是將第一個元素的值設置為-1,將選項文本設置為“ Pick a Project”,然后在單擊事件期間使用以下命令將其刪除
$(".myselect option[value='-1']").each(function() {
$(this).remove();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.