![](/img/trans.png)
[英]jQuery - Check drop-downs <select> for multiple values and for any changes
[英]How to retrieve selected values of all drop-downs present in a container using JQuery/AJAX?
使用 Javascript,我在 dvContainer 下动态生成下拉列表。 我想获取该容器下所有 select 元素的选定值。 以下是从 javascript 生成的 HTML 代码:
<div id="dvContainer">
<div>
<select id="QType_id2">
<option value="1">MCQs</option>
<option value="2">Short Questions</option>
<option value="3">Long Questions</option>
</select>
<input type="button" value="Remove">
</div>
<div>
<select id="QType_id">
<option value="1">MCQs</option>
<option value="2">Short Questions</option>
<option value="3">Long Questions</option>
</select>
<input type="button" value="Remove">
</div>
<div>
<select id="QType_id">
<option value="1">MCQs</option>
<option value="2">Short Questions</option>
<option value="3">Long Questions</option>
</select>
<input type="button" value="Remove">
</div>
</div>
此 Java 脚本用于在 dvContainer 中添加下拉菜单:
<script type="text/javascript">
function AddDropDownList() {
//Build an array containing Customer records.
var customers;
$.getJSON(href="URL GOES HERE",function(customers){
//Create a DropDownList element.
var ddlCustomers = $("<select />");
ddlCustomers.attr('id',"QType_id")
//Add the Options to the DropDownList.
$(customers).each(function () {
var option = $("<option />");
//Set Customer type in Text part.
option.html(this.type);
//Set id in Value part.
option.val(this.id);
//Add the Option element to DropDownList.
ddlCustomers.append(option);
});
//Reference the container DIV.
var dvContainer = $("#dvContainer")
//Add the DropDownList to DIV.
var div = $("<div />");
div.append(ddlCustomers);
//Create a Remove Button.
var btnRemove = $("<input type = 'button' value = 'Remove' />");
btnRemove.click(function () {
$(this).parent().remove();
});
//Add the Remove Buttton to DIV.
div.append(btnRemove);
//Add the DIV to the container DIV.
dvContainer.append(div);
});
};
</script>
使用 AJAX/jQuery,我想构建一个 function,它提供所有下拉列表的选定值。
只是为了说明,添加具有相同 id 的多个元素并不是一个好习惯。 建议将ddlCustomers.attr('id',"QType_id")
替换为ddlCustomers.attr('name',"QType_id")
。 下面添加了用于获取所有行数据的代码片段。
function getAllRowsData() { var alldata = $('#dvContainer>div').map(function() { var $this = $(this), data = {}; data['QType_id'] = $this.find('[name="QType_id"]').val(); return data; }).toArray(); $("#alldataop").text(JSON.stringify(alldata)); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="dvContainer"> <div> <select name="QType_id"> <option value="1">MCQs</option> <option value="2">Short Questions</option> <option value="3">Long Questions</option> </select> <input type="button" value="Remove"> </div> <div> <select name="QType_id"> <option value="1">MCQs</option> <option value="2">Short Questions</option> <option value="3">Long Questions</option> </select> <input type="button" value="Remove"> </div> <div> <select name="QType_id"> <option value="1">MCQs</option> <option value="2">Short Questions</option> <option value="3">Long Questions</option> </select> <input type="button" value="Remove"> </div> </div> <input type="button" onclick="getAllRowsData()" value="Get Data"> <div id="alldataop"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.