대시 코드에서 프로그래밍 방식으로 팝업 메뉴 값을 설정하는 방법
-
20-09-2019 - |
문제
프로그래밍 방식으로 대시 코드에서 팝업 메뉴의 값을 설정하려고합니다. 정적으로 정의 된 기본 기본값 (검사관)의 텍스트/값을 변경할 수는 있지만 추가하거나 제거 할 수는 없습니다. 보기가 초기화되면 가변 수의 옵션이 필요합니다.
var popup = document.getElementById('popup');
//popup.options = []; /* Doesn't clear the list */
//popup.options.length = 0; /* Doesn't clear the list */
popup.options[0].text = "Option 1";
popup.options[0].value = "123";
목록을 어떻게 수정할 수 있습니까? (lmgtfy 답변은 필요하지 않습니다 :)
해결책
나는 결국 이렇게 해결했다 :
//remove all
if (popup.hasChildNodes()) {
while (popup.childNodes.length >= 1) {
popup.removeChild(popup.firstChild);
}
}
//add new
$.each(items, function(i, item) {
var option = document.createElement("option");
option.text = item.name;
option.value = item.id;
popup.appendChild(option);
});
다른 팁
찌르기 만했지만 전체 팝업을 JavaScript로 구축하고 매개 변수를 전달하여 드롭 다운 / 팝업에 항목 수를 설정할 수 없었습니다. 그런 다음 항목을 변경하려면 새 매개 변수로 JavaScript를 호출 할 수 있습니까?
아니면 그 질문을 오해했습니다.
팝업 메뉴 항목을 동적으로 비슷하게 바인딩하려고 할 때 팝업 메뉴 항목에 할당 할당 값이 정확하지만 팝업에 항목이 표시되지 않습니다.
내가 놓친 것이 있습니까? 내 코드는 다음과 같습니다.
var ddlcurrencyCode = document.getElementById ( 'ddlCurrencyCode'); if (ddlcurrencyCode.haschildNodes ()) {while (ddlCurrencyCode.childNodes.length> = 1) {ddlcurrencyCode.RemoveChild (ddlCurrencyCode.FirstChild);
}
}
for (var i = 0; i <result.rows.length; ++ i) {var row = result.rows.item (i);
var ddlitem = document.createElement ( "ddlitem"); ddlitem.text = row [ 'key']; ddlitem.value = row [ 'value']; ddlcurrencycode.appendChild (ddlitem);
}