jQuery select2获取选择标签的值?


95

朋友您好,这是我的代码:

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

这是我的select2代码:

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

下面是获取选定值的代码。

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

这是一个类似的文本first,second,three,我想得到1,2,3
意味着我需要选择框的值,而不是文本。


您可以提供JSFiddle吗?这将非常有用。
尼卡比曹

1
问题尚不清楚。你到底想要什么?
2013年

Answers:


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

5
$(“#first”)。val(); //返回1,2,3 OR $(“#first”)。select2('val'); //返回第一,第二,三
Renish Khunt

$(“#first”)。val(); 将返回1,2,3(无论是否已选择),您可以将代码发布到函数select2()中以获取更多详细信息。
2013年

对于通过id名称而不是类名称调用的选择,请使用:$(“。first”)。val()
Rui Martins

@RuiMartins错误。ID用“#”调用,类用“。”调用,因此要按ID调用,您将使用$(“#first”)。val();对于CLASS,您将使用$(“。first” ).val()
来源

58

要获取Select元素,您可以使用 $('#first').val();

要获取选定值的文本- $('#first :selected').text();

能请您发布您的select2()功能代码吗


1
$(“#first”)。val(); //返回1,2,3 OR $(“#first”)。select2('val'); //返回第一,第二,三
Renish Khunt

不确定,我确实了解您的问题。
Krish R 2013年

1
当我使用select2插件时,我会使用$(“#first”)。val()获得价值。它不返回任何东西,而是返回空白。
Renish Khunt,

能否为您的插件提供小提琴精品?
Krish R 2013年

1
我不得不使用$('#first :selected').text();另一个选项来返回所有可能的选项。
杰夫·布鲁梅尔

35

$("#first").select2('data') 将所有数据作为地图返回


1
如果对select2对象具有额外的属性,则非常有用
Shoe

9

如果您正在使用ajax,则可能希望在选择之后立即获得select的更新值

//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)
});

鸣谢:史蒂文·约翰斯顿


嗨,我可以知道它的currentTarget来源吗?您的ID /名称示例均与问题无关。所以我无法在任何地方联系。
mastersuse

8

此解决方案使您可以忘记选择元素。在选择元素上没有ID时很有用。

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


3

试试这个 :

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

@RenishKhunt这里的答案不仅适合您(询问问题的人员),还适合其他人看到此页面。在这里提交的解决方案越多,其他所有人的选择就越多:不仅仅是您:)
infografnet

是的,很抱歉。谢谢@infografnet,也非常感谢Fahmi Imanudin给出了答案:)
Renish Khunt

2

看到这个小提琴
基本上,您想获取-tag 的values option,但始终尝试使用以下方法获取select-node 的值$("#first").val()

因此,我们必须选择选项标签,我们将利用jQuerys选择器:

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

$("#first option")选择每个optionID为的元素的子元素first


$(“#first”)。val(); //返回1,2,3 OR $(“#first”)。select2('val'); //返回第一,第二,三
Renish Khunt

似乎我弄错了您的问题,然后请明确说明您要实现的目标。
KeyNone

当我使用select2插件时,我会使用$(“#first”)。val()获得价值。它不返回任何东西,而是返回空白。
Renish Khunt 2013年

看到这个小提琴。对我来说效果很好。(我在外部资源下添加了select2.js,尽管我不能说出为什么这些框看起来难看)。
KeyNone

关键是您说我们想获得期权标签的价值!
Darius.V,2015年


0

其他答案对我不起作用,因此我开发了解决方案:

我用class = “ option-item”创建了option以便于定位

HTML:

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

然后对于我添加的每个选定选项,不显示任何内容属性

CSS:

option:checked {
   display: none;
}

现在我们可以将更改添加到我们的SelectBox中,以通过简单的: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();
});

工作提琴:https : //jsfiddle.net/Friiz/2dk4003j/10/


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.