jQuery select2 nhận giá trị của thẻ select?


95

Xin chào các bạn, đây là mã của tôi:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

Đây là mã select2 của tôi:

$("#first").select2();

Dưới đây là mã để nhận giá trị đã chọn.

$("#first").select2('val'); // It returns first,second,three.

Đây là trả về một văn bản như first,second,threevà tôi muốn nhận được 1,2,3.
Có nghĩa là tôi cần giá trị của hộp chọn, không phải văn bản.


Bạn có thể cung cấp JSFiddle không? Nó sẽ rất hữu ích.
Ionică Bizău

1
câu hỏi không rõ ràng. chính xác thì bạn muốn gì?
Hiral

Câu trả lời:


147
$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

5
$ ("# đầu tiên"). val (); // nó trả về 1,2,3 OR $ ("# đầu tiên"). select2 ('val'); // nó trả về đầu tiên, thứ hai, thứ ba
Renish Khunt

$ ("# đầu tiên"). val (); sẽ trả về 1,2,3 (đã từng được chọn) và bạn có thể đăng mã trong hàm select2 () để biết thêm chi tiết.
somesh

cho một chọn gọi bằng tên id thay cho tên lớp, sử dụng: $ val () ( "đầu tiên.").
Rui Martins

@RuiMartins sai. ID được gọi bằng "#" và các lớp được gọi bằng ".", Do đó, để gọi theo ID, bạn sẽ sử dụng $ ("# first"). Val () và đối với CLASS, bạn sẽ sử dụng $ (". 1" ) .val ()
Nguồn Vấn đề

58

Để có được phần tử Chọn bạn có thể sử dụng $('#first').val();

Để nhận văn bản của giá trị đã chọn - $('#first :selected').text();

Bạn có thể vui lòng đăng select2()mã chức năng của bạn được không


1
$ ("# đầu tiên"). val (); // nó trả về 1,2,3 OR $ ("# đầu tiên"). select2 ('val'); // nó trả về đầu tiên, thứ hai, thứ ba
Renish Khunt

Tôi không chắc chắn, tôi đã hiểu câu hỏi của bạn.
Krish R

1
khi tôi sử dụng plugin select2 thì tôi nhận được giá trị bằng $ ("# đầu tiên"). val (). nó không trả về bất cứ thứ gì nó trả về trống.
Renish Khunt

Bạn có thể cung cấp exmaple fiddle với plugin của mình không?
Krish R

1
Tôi đã phải sử dụng $('#first :selected').text();tùy chọn khác là trả về tất cả các tùy chọn có thể.
Jeff Bluemel

35

$("#first").select2('data') sẽ trả về tất cả dữ liệu dưới dạng bản đồ


1
Rất hữu ích nếu bạn có các thuộc tính thêm vào các đối tượng Select2
Shoe

9

Nếu bạn đang sử dụng ajax , bạn có thể muốn nhận được giá trị cập nhật của select ngay sau khi chọn.

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

Tín dụng: Steven-Johnston


Xin chào, tôi có thể biết nó currentTargetđến từ đâu không? không có ví dụ nào về ID / tên của bạn có liên quan đến Câu hỏi. Vì vậy tôi không thể liên hệ ở bất cứ đâu.
thạc sĩ sử dụng

8

Giải pháp này cho phép bạn quên phần tử chọn. Hữu ích khi bạn không có id trên các phần tử được chọn.

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

4

Câu trả lời đơn giản là:

$('#first').select2().val()

và bạn cũng có thể viết bằng cách này:

 $('#first').val()

3

Thử cái này :

$('#input_id :selected').val(); //for getting value from selected option
$('#input_id :selected').text(); //for getting text from selected option

@RenishKhunt câu trả lời ở đây không chỉ dành cho bạn (người đặt câu hỏi) mà còn cho những người khác đang xem trang này. Và các giải pháp khác nhau lại được gửi ở đây, sự lựa chọn tốt hơn có những người khác, một lần nữa: không chỉ là bạn :)
infografnet

Vâng, tôi xin lỗi. Cảm ơn, @infografnet và Cảm ơn rất nhiều Fahmi Imanudin đã đăng câu trả lời :)
Renish Khunt

2

Xem trò chơi này .
Về cơ bản, bạn muốn lấy các -tags valuecủa mình option, nhưng bạn luôn cố gắng lấy giá trị của select-node bằng $("#first").val().

Vì vậy, chúng tôi phải chọn các thẻ tùy chọn và chúng tôi sẽ sử dụng các bộ chọn jQuerys:

$("#first option").each(function() {
    console.log($(this).val());
});

$("#first option")chọn mỗi optioncái là con của phần tử có id first.


$ ("# đầu tiên"). val (); // nó trả về 1,2,3 OR $ ("# đầu tiên"). select2 ('val'); // nó trả về đầu tiên, thứ hai, thứ ba
Renish Khunt

Có vẻ như tôi đã đặt sai câu hỏi của bạn, vậy hãy làm rõ chính xác những gì bạn muốn đạt được.
KeyNone

khi tôi sử dụng plugin select2 thì tôi nhận được giá trị bằng $ ("# đầu tiên"). val (). nó không trả về bất cứ thứ gì nó trả về trống.
Renish Khunt

Xem trò chơi này . Hoạt động hoàn toàn tốt cho tôi. (Tôi đã thêm select2.js dưới các tài nguyên bên ngoài, mặc dù tôi không thể biết tại sao các hộp trông xấu xí).
KeyNone

điều quan trọng là bạn đã nói rằng chúng tôi muốn nhận giá trị của các thẻ tùy chọn!
Darius.V


0

Các câu trả lời khác không phù hợp với tôi vì vậy tôi đã phát triển giải pháp:

Tôi đã tạo tùy chọn với class = "option-item" để dễ nhắm mục tiêu

HTML:

<select id="select-test">
<option value="5-val" id="first-id" class="option-item"> First option </option>
</select>

Sau đó, đối với mọi tùy chọn đã chọn, tôi đã thêm hiển thị không có thuộc tính nào

CSS:

option:checked {
   display: none;
}

Bây giờ chúng ta có thể thêm thay đổi vào SelectBox của mình để tìm tùy chọn đã chọn với thuộc tính không hiển thị bằng thuộc tính simple : hidden

JQuery:

$('#select-test').change(function(){
//value 
    $('#select-test').find('.option-item:hidden').val();
//id
    $('#select-test').find('.option-item:hidden').attr('id');
//text
    $('#select-test').find('.option-item:hidden').text();
});

Làm việc fiddle: https://jsfiddle.net/Friiz/2dk4003j/10/


0

Giải pháp :

var my_veriable = $('#your_select2_id').select2().val();
var my_last_veriable = my_veriable.toString();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.