类似的选择,如何知道哪一个被改变?

时间:2018-11-05 02:48:26

标签: javascript jquery

我有一个页面,可以在其中添加包括下拉列表(选择)字段的行。这些字段的每个字段都是动态创建的,其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>'; 

1 个答案:

答案 0 :(得分:2)

select input周围的整个想法就像任何输入都接受所有事件一样。任何输入都需要clickchangeinput ...等等,假设我们有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>