我的印象是我可以通过执行 $(this).val(); 并将 onchange 参数应用于选择字段来获取选择输入的值 .
$(this).val();
onchange
它似乎只有在我引用ID时才有效 .
我该怎么做呢 .
我的印象是我可以通过执行$(this).val();来获取选择输入的值 .
如果您不引人注意地订阅(这是推荐的方法),这是有效的:
$('#id_of_field').change(function() { // $(this).val() will work here });
如果您使用 onselect 并将标记与脚本混合,则需要传递对当前元素的引用:
onselect
onselect="foo(this);"
然后:
function foo(element) { // $(element).val() will give you what you are looking for }
这对我有帮助 .
对于选择:
$('select_tags').on('change', function() { alert( $(this).find(":selected").val() ); });
对于收音机/复选框:
$('radio_tags').on('change', function() { alert( $(this).find(":checked").val() ); });
对于所有选择,请调用此函数 .
$('select').on('change', function() { alert( this.value ); });
仅限一个选择:
$('#select_id')
尝试使用事件委派方法,几乎适用于所有情况 .
$(document.body).on('change',"#selectID",function (e) { //doStuff var optVal= $("#selectID option:selected").val(); });
你可以尝试这个(使用jQuery) -
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <select> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> </select>
或者您可以使用像这样的简单Javascript-
function getNewVal(item) { alert(item.value); }
<select onchange="getNewVal(this);"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> </select>
寻找jQuery site
HTML:
<form> <input class="target" type="text" value="Field 1"> <select class="target"> <option value="option1" selected="selected">Option 1</option> <option value="option2">Option 2</option> </select> </form> <div id="other"> Trigger the handler </div>
JAVASCRIPT:
$( ".target" ).change(function() { alert( "Handler for .change() called." ); });
jQuery的例子:
要为所有文本输入元素添加有效性测试:
$( "input[type='text']" ).change(function() { // Check input( $( this ).val() ) for validity here });
请注意,如果这些不起作用,可能是因为DOM尚未加载且您的元素尚未找到 .
要修复,请将脚本放在正文末尾或准备好文档
$.ready(function() { $("select").on('change', function(ret) { console.log(ret.target.value) } })
试试这个-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select> <option value="1">One</option> <option value="2">Two</option> </select>
你也可以参考onchange事件 -
function getval(sel) { alert(sel.value); }
<select onchange="getval(this);"> <option value="1">One</option> <option value="2">Two</option> </select>
这对我有用 . 在没有运气的情况下尝试其他一切:
<html> <head> <title>Example: Change event on a select</title> <script type="text/javascript"> function changeEventHandler(event) { alert('You like ' + event.target.value + ' ice cream.'); } </script> </head> <body> <label>Choose an ice cream flavor: </label> <select size="1" onchange="changeEventHandler(event);"> <option>chocolate</option> <option>strawberry</option> <option>vanilla</option> </select> </body> </html>
取自Mozilla
$('select_id').on('change', function() { alert(this.value); //or alert($(this).val()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <select id="select_id"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> </select>
箭头函数的范围与函数不同, this.value 将为箭头函数提供undefined . 修复使用
this.value
$('select').on('change',(event) => { alert( event.target.value ); });
jQuery(document).ready(function(){ jQuery("#id").change(function() { var value = jQuery(this).children(":selected").attr("value"); alert(value); }); })
12 回答
如果您不引人注意地订阅(这是推荐的方法),这是有效的:
如果您使用
onselect
并将标记与脚本混合,则需要传递对当前元素的引用:然后:
这对我有帮助 .
对于选择:
对于收音机/复选框:
对于所有选择,请调用此函数 .
仅限一个选择:
尝试使用事件委派方法,几乎适用于所有情况 .
你可以尝试这个(使用jQuery) -
或者您可以使用像这样的简单Javascript-
寻找jQuery site
HTML:
JAVASCRIPT:
jQuery的例子:
要为所有文本输入元素添加有效性测试:
请注意,如果这些不起作用,可能是因为DOM尚未加载且您的元素尚未找到 .
要修复,请将脚本放在正文末尾或准备好文档
试试这个-
你也可以参考onchange事件 -
这对我有用 . 在没有运气的情况下尝试其他一切:
取自Mozilla
箭头函数的范围与函数不同,
this.value
将为箭头函数提供undefined . 修复使用