2013-03-21 58 views
0

我試圖獲取用戶在動態生成的選擇中動態生成的選項上選擇的選項的值。現在我只是試圖提醒一下,但是已經徹底失敗了。JQuery獲取選擇的動態生成的選項的值

我試過使用docuement.ready裏面的.change文件夾,但那不起作用,我想這可能是因爲它不存在要綁定到的元素。代號爲.change

$(document).ready(function() { 
    $(".lowerSerialSelect").change(function() { 
     alert("red") 
    }); 
}); 

下面是我使用動態生成的選擇代碼:

if (_interface == "network" && _deviceName == "Not in Use") 
    { 
     var lowerSerialTd = document.createElement("td"); 
     lowerSerialTd.className = "lowerSerial"; 
     trTag.appendChild(lowerSerialTd); 
     var lowerSerialSelect = document.createElement("select"); 
     lowerSerialSelect.className = "lowerSerialSelect"; 
     lowerSerialSelect.name = "lowerSerial" + identifier; 
     lowerSerialSelect.id = _interface + "lowerSerial" + identifier; 

     var lowerSerialOption = document.createElement("option"); 
     lowerSerialSelect.appendChild(lowerSerialOption) 

     for (newDevice in newNetworkDevices) 
     { 
      alert(newNetworkDevices[0]); 
      var lowerSerialOption = document.createElement("option"); 
      lowerSerialOption.innerHTML = newNetworkDevices[newDevice][0]; 
      lowerSerialOption.className = "networkMacOption"; 
      lowerSerialOption.id = _interface + "lowerSerial" + identifier; 
      lowerSerialOption.value = newNetworkDevices[newDevice]; 
      lowerSerialSelect.appendChild(lowerSerialOption) 
     } 

     lowerSerialTd.appendChild(lowerSerialSelect); 
     alert("Maybe"); 
    } 

正因爲此,在.change不綁定到尚未創建的元素呢?

如果可以,我每次創建一個新選擇時都可以通過重新綁定來解決此問題? (用戶將觸發新的選擇,所以它不會一次完成)

我也試過了$(「select」.on(「change」,「option」,function(){alert (「red」);});但無濟於事,任何幫助或解釋,將不勝感激

這是在一個配置頁面,所以代碼很長,800一些行,所以我不想發佈整個事情。

感謝

**編輯**

是動態生成HTML d看起來這到底:

<select class="lowerSerialSelect" name="lowerSerial2" id="networklowerSerial2"> 
     <option></option> 
     <option class="networkMacOption" id="networklowerSerial2" value="0080A39166BA,192.168.1.59,47331,1363895658.22">0080A39166BA</option> 
    </select> 
+0

因此,對於任何人遇到同樣的問題,我的問題是使用jQuery的過時的版本,並使用jQuery的工具過時的版本的組合。 – Poodimizer 2013-03-22 15:21:40

回答

2

呀你點上,.change()不是委派彎。嘗試.on()

$('body').on('change', '.lowerSerialSelect', function() { 
    // code here 
}); 
+0

嗯,我只是試着精確的代碼,只是在它的警報,它沒有觸發,我絕對有一個身體標記。當我明白這一點時,我可能會做所有的面部表情。 – Poodimizer 2013-03-21 20:32:15

+0

哦,我是個白癡好的,非常感謝你們100%正確。原來我們只是使用過時的JQuery版本。現在我知道將版本代碼保留在插件文件名中。 – Poodimizer 2013-03-21 20:45:48

+0

其實還是不行。不過,我現在可以在創建新選擇時綁定.change。只是希望我知道爲什麼另一個不工作,因爲它是更高效的代碼。 – Poodimizer 2013-03-21 21:31:05

相關問題