我有一个页面,可以在其中添加包括下拉列表(选择)字段的行。这些字段的每个字段都是动态创建的,其ID为“ drop1,drop2,drop3”等。
我想使用ajax从mysql提取一些数据,我遇到的问题是知道哪个下拉列表已更改以提取数据。
ive使用此方法可以知道当前有多少个选择字段,但不知道如何确定哪个字段已更改。任何帮助表示赞赏。
var myCount = $("select[id^=drop]").length;
这是要添加的行。
var n=($('.detail tr').length-0)+1;
var tr = '<tr>'+
'<td>'+n+'</td>'+
'<td><select id="drop'+n+'" name="prodService[]"></select></td>'+
'<td id="desc'+n+'"></td>'+
'<td><a href="#" class="remove">Delete</a></td>'+
'</tr>';
答案 0 :(得分:2)
select input
周围的整个想法就像任何输入都接受所有事件一样。任何输入都需要click
,change
,input
...等等,假设我们有3个select下拉列表。
如何检测它们是否已更改并获取新值
$('.select-list').on('change', function(evt) {
console.log($(this).val()); // get the select value - new value if changed
console.log($(this).attr('id')); // just for implementation purposes and debugging
});
更进一步,您可以执行以下操作:当用户从下拉列表中选择一项时,向服务器发送请求以获取一些数据。您可以使用value=""
属性,通过输入关键字/触发键(只是为了区分它们)来发送不同的请求,具体取决于所选的项目。
$('.select-list').on('change', function(evt) {
console.log($(this).val()); // get the select value - new value if changed
console.log($(this).attr('id')); // just for implementation purposes and debugging
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="select-list" name="items" id="itemsList1">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
<option value="4">item4</option>
</select>
<select class="select-list" name="items" id="itemsList2">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
<option value="4">item4</option>
</select>
<select class="select-list" name="items" id="itemsList3">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
<option value="4">item4</option>
</select>