我有一个表单,它有一个定义如下的选择字段
myName[]是这样的,因为在注册表单中有几次重复(用户首先定义他想要输入多少表单,然后生成那么多表单)
现在,我想在选择某个元素时使用jQuery获取选定的值,但正如预期的那样,它不会起作用:它试图从一个id中获取信息,而这个id不止一个。结果是它总是用找到的id获取第一个选择字段的内容。我尝试将id更改为class,但不起作用。
那么,如何获得实际触发事件的选择框的选定值呢?
$(document).ready(function() {
$('#idOfmyName').change(function() {
var naam = $(this).find("option:selected").attr('value');
alert(naam);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="myname[]" id="idOfmyName">
<option value="jack">Jack</option>
<option value="rose">Rose</option>
</select>
发布于 2020-01-01 13:16:10
如果你想要选择的元素,为什么不能直接使用$(this).val()
呢?
但是,是的,当您有多个相同ID时,jQuery将优先选择它找到的第一个ID-尽管您似乎确实知道这一点;在此演示中,我已经将其更改为一个类
$(document).ready(function() {
$('.idOfmyName').on('change', function() {
alert($(this).val());
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="myname[]" class="idOfmyName">
<option value="jack">Jack</option>
<option value="rose">Rose</option>
</select>
<select name="myname[]" class="idOfmyName">
<option value="harry">Harry</option>
<option value="sally">Sally</option>
</select>
<select name="myname[]" class="idOfmyName">
<option value="edward">Edward </option>
<option value="vivian">Vivian </option>
</select>
发布于 2020-01-01 13:31:27
对于多个,你可以这样做
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="myname[]" class="idOfmyName">
<option value="jack">Jack</option>
<option value="rose">Rose</option>
</select>
<select name="myname[]" class="idOfmyName">
<option value="jack">Jack</option>
<option value="rose">Rose</option>
</select>
<script>
$(document).ready(function() {
var names = [];
$('.idOfmyName').change(function() {
var naam = $(this).find("option:selected").attr('value');
if($.inArray(naam,names)){
names.push(naam);
}
alert(names);
});
});
</script>
发布于 2020-01-01 13:50:16
使用onchange方法获取选定值的Vanilla JavaScript方法
function getSelectedValue(val) {
alert(val);
}
<select name="myname[]" onchange="getSelectedValue(this.value)">
<option value="jack">Jack</option>
<option value="rose">Rose</option>
</select>
<select name="myname[]" onchange="getSelectedValue(this.value)">
<option value="harry">Harry</option>
<option value="sally">Sally</option>
</select>
https://stackoverflow.com/questions/59552849
复制相似问题