我的印象是,我可以通过执行此$(this).val();
并将onchange
参数应用于选择字段来获取选择输入的值。
它似乎只有在我引用ID时才有效。
我该如何使用它。
答案 0 :(得分:1321)
试试这个 -
$('select').on('change', function() {
alert( this.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>
答案 1 :(得分:81)
我的印象是我可以获得一个选择的价值 通过这样做来输入$(this).val();
如果你不引人注意地订阅(这是推荐的方法),这是有效的:
$('#id_of_field').change(function() {
// $(this).val() will work here
});
如果您使用onselect
并将标记与脚本混合,则需要传递对当前元素的引用:
onselect="foo(this);"
然后:
function foo(element) {
// $(element).val() will give you what you are looking for
}
答案 2 :(得分:76)
这对我有帮助。
选择:
$('select_tags').on('change', function() {
alert( $(this).find(":selected").val() );
});
收音机/复选框:
$('radio_tags').on('change', function() {
alert( $(this).find(":checked").val() );
});
答案 3 :(得分:13)
尝试使用事件委派方法,几乎适用于所有情况。
$(document.body).on('change',"#selectID",function (e) {
//doStuff
var optVal= $("#selectID option:selected").val();
});
答案 4 :(得分:9)
您可以尝试此操作(使用jQuery) -
$('select').on('change', function()
{
alert( this.value );
});
<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>
答案 5 :(得分:5)
这对我有用。在没有运气的情况下尝试了其他一切:
<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
答案 6 :(得分:5)
对于所有选择,请调用此函数。
$('select').on('change', function()
{
alert( this.value );
});
只有一个选择:
$('#select_id')
答案 7 :(得分:3)
寻找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
});
答案 8 :(得分:2)
箭头功能与功能的作用域不同,
this.value
将为箭头函数提供undefined。
要修复使用
$('select').on('change',(event) => {
alert( event.target.value );
});
答案 9 :(得分:1)
请注意,如果这些不起作用,可能是因为DOM尚未加载且您的元素尚未找到。
要修复,请将脚本放在正文末尾或使用文档准备好
$.ready(function() {
$("select").on('change', function(ret) {
console.log(ret.target.value)
}
})
答案 10 :(得分:0)
jQuery(document).ready(function(){
jQuery("#id").change(function() {
var value = jQuery(this).children(":selected").attr("value");
alert(value);
});
})
答案 11 :(得分:0)
我要添加, 谁需要完整的自定义标头功能
function addSearchControls(json) {
$("#tblCalls thead").append($("#tblCalls thead tr:first").clone());
$("#tblCalls thead tr:eq(1) th").each(function (index) {
// For text inputs
if (index != 1 && index != 2) {
$(this).replaceWith('<th><input type="text" placeholder=" ' + $(this).html() + ' ara"></input></th>');
var searchControl = $("#tblCalls thead tr:eq(1) th:eq(" + index + ") input");
searchControl.on("keyup", function () {
table.column(index).search(searchControl.val()).draw();
})
}
// For DatePicker inputs
else if (index == 1) {
$(this).replaceWith('<th><input type="text" id="datepicker" placeholder="' + $(this).html() + ' ara" class="tblCalls-search-date datepicker" /></th>');
$('.tblCalls-search-date').on('keyup click change', function () {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
table.columns(index).search(v).draw();
});
$(".datepicker").datepicker({
dateFormat: "dd-mm-yy",
altFieldTimeOnly: false,
altFormat: "yy-mm-dd",
altTimeFormat: "h:m",
altField: "#tarih-db",
monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
dayNamesMin: ["Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct"],
firstDay: 1,
dateFormat: "yy-mm-dd",
showOn: "button",
showAnim: 'slideDown',
showButtonPanel: true,
autoSize: true,
buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
buttonImageOnly: false,
buttonText: "Tarih Seçiniz",
closeText: "Temizle"
});
$(document).on("click", ".ui-datepicker-close", function () {
$('.datepicker').val("");
table.columns(5).search("").draw();
});
}
// For DropDown inputs
else if (index == 2) {
$(this).replaceWith('<th><select id="filter_comparator" class="styled-select yellow rounded"><option value="select">Seç</option><option value="eq">=</option><option value="gt">>=</option><option value="lt"><=</option><option value="ne">!=</option></select><input type="text" id="filter_value"></th>');
var selectedOperator;
$('#filter_comparator').on('change', function () {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
selectedOperator = v;
if(v=="select")
table.columns(index).search('select|0').draw();
$('#filter_value').val("");
});
$('#filter_value').on('keyup click change', function () {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
table.columns(index).search(selectedOperator + '|' + v).draw();
}
});
}
})
}
答案 12 :(得分:0)
jQuery使用on Change事件获取选定html元素的值
$(document).ready(function () {
$('body').on('change','#select_box', function() {
$('#show_only').val(this.value);
});
});
<!DOCTYPE html>
<html>
<title>jQuery Select OnChnage Method</title>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<select id="select_box">
<option value="">Select One</option>
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
<option value="Four">Four</option>
<option value="Five">Five</option>
</select>
<br><br>
<input type="text" id="show_only" disabled="">
</body>
</html>
答案 13 :(得分:0)
仅适用于JS
let select=document.querySelectorAll('select')
select.forEach(function(el) {
el.onchange = function(){
alert(this.value);
}}
)
答案 14 :(得分:0)
$('#select-id').change(function() {
console.log($(this).val());
});