使用选择性从选定内容中获取文本
我试过这个:
var eventHandler = function() { return function() { console.log($select.val()); }; }; var $select = $('.selectize').selectize({ create : true, onChange : eventHandler() });
这让我了解所选选项的价值,但我需要文本。 我这样做的时候:
console.log($select.val().text());
我收到一个错误。 我尝试过其他事情无济于事。 如何获取所选文本?
select_option.getItem(select_option.getValue())[0].innerHTML; select_option = $select_option[0].selectize;
获取指定下拉选项的文本值。
this.getItem(value)[0].innerHTML
获取当前下拉选项的文本值
最简单的方法是使用onChange
事件并从所选选项中获取文本
JS:
$(function(){ $('#select').selectize({ create: true, sortField: { field: 'text', direction: 'asc' }, onChange:function(value){ $(".log").append("Value:" + value + "
"); $(".log").append("Text:" +$("#select option:selected").text() + "
"); }, dropdownParent: 'body' }); });
您可以使用此行获取文本:
ddlcontrol[0].selectize.getItem(ddlcontrol[0].selectize.getValue()).text();
ddlcontrol来自哪里:
var ddlcontrol = $('#ddCountry').selectize({ valueField: 'id', labelField: 'name', searchField:['name'] });
希望这对你有用!。
所以我得到了它的工作。 这是该死的kludgey,必须有一个更好的方法。 有一个方法getValue()
但是没有相应的getText()
方法。
var eventHandler = function() { return function() { var something = selectizeControl.getItem(selectizeControl.getValue()); console.log(something.text()); }; }; var $select = $('.selectize').selectize({ create : true, onChange : eventHandler() }); var selectizeControl = $select[0].selectize
这个东西可以通过原型添加:
Selectize.prototype.getText = function () { return this.getItem(this.getValue()).text(); };
如果有人需要方法setText
(如相应的方法setValue
),可以这样添加:
Selectize.prototype.setText = function (text) { var selectize = this; $.each(this.options, function (propertyName, propertyValue) { if (propertyValue[selectize.settings.labelField] === text) { selectize.setValue(propertyName); return false; } }); };
您可以通过以下方式获取所选文
$('select').selectize({ onInitialize: function (selectize) { selectize.on('change', function (value) { var item = this.$input[0]; var selected_text = $(item.selectize.getItem(value)[0]).text(); }); } }