我正在使用jQuery来获取数据并将其通过ajax发布。
为了获得此数据,我正在使用选择元素,用户可以根据自己的需求生成更多选择。
每当这些选择中的任何一个发生更改时,我都希望返回其所有值,以便以后使用。
但是,当我尝试获取所有选择的值时出现错误
$(document).ready(function() {
$("#marketingProd").on("change", function() {
$("#marketingProd select").each(function() {
alert(($this).val());
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="marketingProd">
<select class="marketingProd" name="marketingProd[]" id="marketingprod1">
<option value=""></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
<div class="newProd" id="newProd2">
<select class="marketingProd" name="marketingProd[]" id="marketingProd2">
<option value=""></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
</div>
<div class="newProd" id="newProd3">
<select class="marketingProd" name="marketingProd[]" id="marketingProd3">
<option value=""></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
</div>
</div>
除第一个选择外,所有选择均已动态生成。
更新:为问题增加了清晰度
您似乎没有正确委派事件处理程序,请尝试:
$(document).ready(function() {
$("#marketingProd").on("change", "select", function() { // delegated to the SELECT
$("#marketingProd select").each(function() {
alert($(this).val()); // Fixed syntax error here
});
});
});
试试小提琴:https : //jsfiddle.net/qm2uyt6y/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句