jquery select2设置输入值

时间:2016-01-20 21:04:29

标签: jquery jquery-select2-4 select2

我使用select2输入以下文本框:

require(data.table) # v1.9.7, commit 2096+
set.seed(2L)
A <- data.table(
     kom = rep(101L,20),
     eje = 1L:20L,
     gad = rep("A.C. Meyers Vænge",20),
     num = rep(c('1','10','11','11A'),times=c(10,1,2,7)),
     enc = sample(c('unkwown','UTF-8'), 20, replace=TRUE)
)
Encoding(A$gad) <- A$enc
setkey(A,kom,gad,num)
> unique(A)
#    kom eje               gad num     enc
# 1: 101   1 A.C. Meyers Vænge   1 unkwown
# 2: 101  11 A.C. Meyers Vænge  10   UTF-8
# 3: 101  12 A.C. Meyers Vænge  11 unkwown
# 4: 101  14 A.C. Meyers Vænge 11A unkwown

这是使用select2这样设置:

 let comp_grade (perc_exam, perc_homework, perc_attendance) = let (grade_exam, grade_homework, grade_attendance) =
    (float)(perc_exam / 100 * grade_exam + perc_homework / 100 * grade_homework + perc_attendance / 100 * grade_attendance);

let COP4555_grade_computer = comp_grade(50,30,20);
let CEN3723_grade_computer = comp_grade(70,30,0);

let COP4555_student1_grade = COP4555_grade_computer (90, 95, 100);
let COP4555_student2_grade = COP4555_grade_computer (70, 80, 100);
let CEN3723_student1_grade = COP4555_grade_computer (90, 95, 100);
let CEN3723_student2_grade = COP4555_grade_computer (70, 80, 100);

现在,我想设置文本输入的默认值。我尝试了以下方法:

<div class="col-md-6">
    <div class="form-group">
        <label for="QRY_Owner"> Owner ID</label>
        <input id="QRY_Owner" type="text" style="width:100%">
        </input>
    </div>
</div>

以及以下内容:

            $("#QRY_Owner").select2({
                placeholder: "Owner ID",
                tags: [],
                tokenSeparators: [",", " ", ";"],
                maximumInputLength: 12,
                selectOnBlur: true,
                dropdownCssClass: "hiddenSelect2DropDown"
            });

以及以下内容:

$("#QRY_Owner").select2("val", "test value");

但表单没有更新,输入字段为空白。另外,我在浏览器控制台中没有出现任何错误。

对于我在这里缺少什么的想法?

这是一个显示我的问题的jsfiddle: https://jsfiddle.net/snehilw/90m8hzpg/

2 个答案:

答案 0 :(得分:1)

JQuery select2 set default value from an option in list?抓住。 只需添加:

.select2('val', ['AL', 'WY'])

jsfiddle

答案 1 :(得分:1)

问题的一部分是,您希望将<input>.select2()一起使用.select2()<select>标记配合使用,如 {{3 }}

你的JSFiddle是我刚才所说的。除此之外,如果你真的想要改变这个值,那么你需要做的就是重新使用.select2函数(复制/粘贴)并用它想要的任何文本替换其中的占位符属性:

$(document).ready(function(){
  var QRY_Owner = $("#QRY_Owner");

  QRY_Owner.select2({
    placeholder: "Owner ID",
    tags: [],
    tokenSeparators: [",", " ", ";"],
    maximumInputLength: 12,
    selectOnBlur: true,
    dropdownCssClass: "hiddenSelect2DropDown"
  });

  QRY_Owner.select2({
    placeholder: "Test text",
    tags: [],
    tokenSeparators: [",", " ", ";"],
    maximumInputLength: 12,
    selectOnBlur: true,
    dropdownCssClass: "hiddenSelect2DropDown"
  });
});

请记住,始终将$(document).ready与JQuery一起使用,这是最佳做法。