Select2用jquery返回一个占位符值

问题描述 投票:0回答:2

我正在显示占位符时从select2框中返回一个值。无论我做什么,它都会返回null或空值而不是期望值。我想以某种方式在用户未选择任何内容的情况下获得“ 99999”:

<select id='filter'>
<option value='1'>one</option>
<option value='2'>two</option>
<option value='3'>three</option>
</select>

...

$('#filter').select2 ({
    allowClear: true,
    placeholder: {
        id: '99999',
        text: 'select something'
    }
});

...

console.log($('#filter').val());  // returns null when placeholder visible
console.log($('#filter').select2('data'));  // returns [] when placeholder visible
javascript jquery jquery-select2 placeholder
2个回答
0
投票

尽管占位符代替了值,但与值完全不同。它是一个单独的属性。使用javascript访问它的方式将是

console.log(document.getElementById("filter").getAttribute("placeholder"));

0
投票

已解决。问题的核心是空白选项要求...但是您需要在空白选项中包含ID。

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet" />
<select style="width:400px;" id="filter" >
  <option value="99999"></option>
  <option value="1">example 1</option>
  <option value="1">example 1</option>
  <option value="2">example 2</option>
  <option value="3">example 3</option>
</select>
<button id="clickme">clickme</button>

$('#filter').select2({
    allowClear: true,
    placeholder: {
        id: "99999",
        text: "select something"
    }
    //placeholder: "select something"
})
$('#clickme').click(function() {
    console.log($('#filter').children("option:selected").val());

http://jsfiddle.net/juwmb3oh/

© www.soinside.com 2019 - 2024. All rights reserved.