Tôi đã ràng buộc một sự kiện về sự kiện thay đổi của các yếu tố được chọn của tôi với điều này:
$('select').on('change', '', function (e) {
});
Làm cách nào tôi có thể truy cập phần tử được chọn khi sự kiện thay đổi xảy ra?
Tôi đã ràng buộc một sự kiện về sự kiện thay đổi của các yếu tố được chọn của tôi với điều này:
$('select').on('change', '', function (e) {
});
Làm cách nào tôi có thể truy cập phần tử được chọn khi sự kiện thay đổi xảy ra?
Câu trả lời:
$('select').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
....
});
$("selector", this)
bạn đang tìm thấy tất cả các selector
yếu tố bên trong this
bối cảnh. Viết $("selector", this)
gần giống như $(this).find('selector')
$()
là bí danh của jQuery()
, bạn có thể tìm tài liệu ở đây: api.jquery.com/jQuery Chữ ký được nêu rõ ràng là có jQuery( selector [, context ] )
. @Bellash: nếu nó "gần giống nhau", thì sự khác biệt là gì? Hay cái gì nhanh hơn? Tôi thích .find()
vì đây là OO IMO nhiều hơn ...
.find()
nhanh hơn khoảng 10% theo câu trả lời này: stackoverflow.com/a/9046288/2767703
Bạn có thể sử dụng phương thức tìm jQuery
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
Giải pháp trên hoạt động hoàn hảo nhưng tôi chọn thêm mã sau đây để họ sẵn sàng nhận tùy chọn đã nhấp. Nó cho phép bạn có được tùy chọn đã chọn ngay cả khi giá trị chọn này không thay đổi. (Chỉ được thử nghiệm với Mozilla)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
option
các sự kiện là một đề xuất rủi ro, đặc biệt là trên các thiết bị di động. Ví dụ: Webkit không hỗ trợ chính xác sự kiện này: bug.chromium.org/p/chromium/issues/detail?id=5284
Trong trường hợp bất cứ ai đang sử dụng phương pháp ủy nhiệm cho người nghe của họ, hãy sử dụng e.target
(nó sẽ đề cập đến phần tử chọn).
$('#myform').on('change', 'select', function (e) {
var val = $(e.target).val();
var text = $(e.target).find("option:selected").text(); //only time the find is required
var name = $(e.target).attr('name');
}
Tôi thấy điều này ngắn hơn và sạch hơn. Ngoài ra, bạn có thể lặp qua các mục đã chọn nếu có nhiều mục;
$('select').on('change', function () {
var selectedValue = this.selectedOptions[0].value;
var selectedText = this.selectedOptions[0].text;
});
selectedOptions
không có sẵn trong tất cả các trình duyệt.
this.options[ this.options.selectedIndex ]
. Mozilla cho biết được Firefox hỗ trợ từ 26, IE Không hỗ trợ.
<select id="selectId">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
$('#selectId').on('change', function () {
var selectVal = $("#selectId option:selected").val();
});
Đầu tiên tạo a select option
. Sau đó, jquery
bạn có thể nhận giá trị được chọn hiện tại khi người dùng thay đổi select option
giá trị.
$('#_SelectID').change(function () {
var SelectedText = $('option:selected',this).text();
var SelectedValue = $('option:selected',this).val();
});
Một cách khác và ngắn để lấy giá trị của giá trị được chọn,
$('#selectElement').on('change',function(){
var selectedVal = $(this).val();
^^^^ ^^^^ -> presents #selectElement selected value
|
v
presents #selectElement,
});
Xem tài liệu API chính thức https://api.jquery.com/selected-selector/
Công việc tốt này:
$( "select" ).on('change',function() {
var str = "";
// For multiple choice
$( "select option:selected" ).each(function() {
str += $( this ).val() + " ";
});
});
và
$( "select" ).on('change',function() {
// For unique choice
var selVal = $( "select option:selected" ).val();
});
và dễ dàng cho sự lựa chọn độc đáo
var SelVal = $( "#idSelect option:selected" ).val();
Bạn có thể sử dụng sự kiện thay đổi chọn jquery này để nhận giá trị tùy chọn đã chọn
$(document).ready(function () {
$('body').on('change','#select', function() {
$('#show_selected').val(this.value);
});
});
<!DOCTYPE html>
<html>
<title>Learn Jquery value Method</title>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<select id="select">
<option value="">Select One</option>
<option value="PHP">PHP</option>
<option value="jAVA">JAVA</option>
<option value="Jquery">jQuery</option>
<option value="Python">Python</option>
<option value="Mysql">Mysql</option>
</select>
<br><br>
<input type="text" id="show_selected">
</body>
</html>