获得"价值"使用JavaScript从动态生成的下拉列表中删除

时间:2015-07-22 22:45:22

标签: javascript jquery dynamic

当我使用静态下拉列表时,我可以获得价值,但是一旦我更改为动态生成的列表值,它总是空白的。

有人有什么想法吗?甚至可以从动态元素中获取值吗?

JS:

$('#input_baseUrl').ready(function(){
    var newSelect=document.createElement('select');
    var selectHTML="";

    for(var count=0; count<services.length; count=count+1){
        var tempString = services[count].split("/");
        var serviceName = tempString[3];
        selectHTML+= "<option value='"+services[count]+"'>"+serviceName+"</option>";
    }

    //iniatilize a new select with the data we provided
    newSelect.innerHTML= selectHTML;
    //find the DOM element that is called input_baseURL
    document.getElementById("input_baseUrl").appendChild(newSelect);

});

function setURL() {
    var url = document.getElementById("input_baseUrl").value;
    alert($('#input_baseUrl').val());  // not sure if jQuery will work here but I have to try
    window.alert("THE URL is: " + url);
    var element = document.getElementById("input_baseUrl");
    var strUser = element.options[element.selectedIndex].value;
    window.alert("Third option is: " +strUser);
}

HTML:

<form id='api_selector'>
     <div class='input' id="input_baseUrl" onchange="setURL()" name="baseUrl" type="text"></div>
     <div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
     <div class='input'><a id="explore" href="#">Explore</a></div>
</form>

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。但你必须使用更精细的选择器:

$('#input_baseUrl select option:selected').val();

但我认为您的HTML在以下行中存在问题,您是说这是两个标记,input内有div吗?

<div class='input' id="input_baseUrl" onchange="setURL()" name="baseUrl" type="text"></div>

要解决此问题,请将其分为两个标记,然后将div id <form id='api_selector'> <div class='input' id="div_baseUrl"> <input id="input_baseUrl" onchange="setURL()" name="baseUrl" type="text"/> </div> ... </form>

newSelect

然后,您可以从div功能中将ready()添加到document.getElementById("div_baseUrl").appendChild(newSelect);

setUrl()

在此之后,您的function setURL() { var url = $('#input_baseUrl').val(); var strUser = $('#div_baseUrl select option:selected').val(); } 功能可以是:

/