如何将基本值设置为 Bootstrap Smartadmin 的 select 框
how to set basic value to select box of Bootstrap Smartadmin
我正在使用 bootstrap,它使用 SmartAdmin 主题。
它将所有html结构变成<section><div>
结构包含<select><option>
。
所以我的输出如下所示。
<section id="00000001" class="col col-md-6">
<label class="label">SomeLabel
<sapn class="cp_id_text"></sapn>
</label>
<label class="select">
<div class="select2-container form-hidden-control" id="s2id_00000001" title="" style="width: 100%;"><a href="javascript:void(0)" class="select2-choice" tabindex="-1"> <span class="select2-chosen" id="select2-chosen-9">20th Century Fox Film Corporation(00000001)</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow" role="presentation"><b role="presentation"></b></span></a><label for="s2id_autogen9" class="select2-offscreen"></label><input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-9" id="s2id_autogen9"></div><input type="text" class="form-hidden-control select2-offscreen" id="00000001" name="cp_id" value="" data-init-text="" inputtype="select" title="" maxlength="50" tabindex="-1">
<script>$("#00000001").select2(selects2Option('00000002','cp_id'));</script>
</label>
<script>
$("#00000001").attr("maxlength", "50");
</script>
</section>
因为我找不到任何 <select>
标签,所以我不能使用 selected 属性来设置默认值。
我可以通过jquery、parent()
、find()
等方式找到,但效率不高。有什么办法可以像 selected
这样简单地处理吗?
SmartAdmin 网站说他们使用 select2 api,但他们没有提到如何将值设置为默认值。
站点:http://192.241.236.31/smartadmin/BUGTRACK/track_/documentation/index.html#!/introduction
谢谢。
如果您看到 select2
演示,您会发现 Programmatic access 区域,其中提供了如何在 button
点击时设置值。同样可以用来设置初始化后的默认值如下:
<select class="js-example-programmatic">
<option value="one">First</option>
<option value="two">Second</option>
<option value="three">Third</option>
</select>
Js
$(document).ready(function() {
$(".js-example-programmatic").select2();
var $example = $(".js-example-programmatic");
$example.val("three").trigger("change");
});
我自己解决了这个问题。
@Guruparasad Rao 的回答很有帮助,但我想谈谈我是如何解决的。(因为有点不同)
首先,我抓取了绑定到 select2 的元素。
target.select2('destroy');
var data = [
{id: 'admin', text: 'admin'}
, {id: 'visitor', text: 'visitor'}
, {id: 'buyer', text: 'buyer'}];
target.addClass('col-md-12').select2({data : data, multiple: true});
我想提到的一件事是使用 id
和 text
键是 select2 中的固定语法。该对象应包含该关键字。
我正在使用 bootstrap,它使用 SmartAdmin 主题。
它将所有html结构变成<section><div>
结构包含<select><option>
。
所以我的输出如下所示。
<section id="00000001" class="col col-md-6">
<label class="label">SomeLabel
<sapn class="cp_id_text"></sapn>
</label>
<label class="select">
<div class="select2-container form-hidden-control" id="s2id_00000001" title="" style="width: 100%;"><a href="javascript:void(0)" class="select2-choice" tabindex="-1"> <span class="select2-chosen" id="select2-chosen-9">20th Century Fox Film Corporation(00000001)</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow" role="presentation"><b role="presentation"></b></span></a><label for="s2id_autogen9" class="select2-offscreen"></label><input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-9" id="s2id_autogen9"></div><input type="text" class="form-hidden-control select2-offscreen" id="00000001" name="cp_id" value="" data-init-text="" inputtype="select" title="" maxlength="50" tabindex="-1">
<script>$("#00000001").select2(selects2Option('00000002','cp_id'));</script>
</label>
<script>
$("#00000001").attr("maxlength", "50");
</script>
</section>
因为我找不到任何 <select>
标签,所以我不能使用 selected 属性来设置默认值。
我可以通过jquery、parent()
、find()
等方式找到,但效率不高。有什么办法可以像 selected
这样简单地处理吗?
SmartAdmin 网站说他们使用 select2 api,但他们没有提到如何将值设置为默认值。
站点:http://192.241.236.31/smartadmin/BUGTRACK/track_/documentation/index.html#!/introduction
谢谢。
如果您看到 select2
演示,您会发现 Programmatic access 区域,其中提供了如何在 button
点击时设置值。同样可以用来设置初始化后的默认值如下:
<select class="js-example-programmatic">
<option value="one">First</option>
<option value="two">Second</option>
<option value="three">Third</option>
</select>
Js
$(document).ready(function() {
$(".js-example-programmatic").select2();
var $example = $(".js-example-programmatic");
$example.val("three").trigger("change");
});
我自己解决了这个问题。 @Guruparasad Rao 的回答很有帮助,但我想谈谈我是如何解决的。(因为有点不同)
首先,我抓取了绑定到 select2 的元素。
target.select2('destroy');
var data = [
{id: 'admin', text: 'admin'}
, {id: 'visitor', text: 'visitor'}
, {id: 'buyer', text: 'buyer'}];
target.addClass('col-md-12').select2({data : data, multiple: true});
我想提到的一件事是使用 id
和 text
键是 select2 中的固定语法。该对象应包含该关键字。