我有一个选择控件,在一个javascript变量,我有一个文本字符串。
使用jQuery,我想设置选择控件的选定元素为我有文本描述的项目(而不是值,这是我没有的)。
我知道用值来设置它很简单。如。
$("#my-select").val(myVal);
但我有点难住了,通过文本描述。我想一定有办法从文本描述中得到价值,但我的大脑在周五下午太忙了,无法解决这个问题。
我有一个选择控件,在一个javascript变量,我有一个文本字符串。
使用jQuery,我想设置选择控件的选定元素为我有文本描述的项目(而不是值,这是我没有的)。
我知道用值来设置它很简单。如。
$("#my-select").val(myVal);
但我有点难住了,通过文本描述。我想一定有办法从文本描述中得到价值,但我的大脑在周五下午太忙了,无法解决这个问题。
当前回答
试试这个…选择myText文本选项
$("#my-Select option[text=" + myText +"]").prop("selected", true);
其他回答
这只是题外话。没有设置我选择的值。我搜遍了整个网络。实际上,我必须从web服务回调后选择一个值,因为我从它得到数据。
$("#SelectMonth option[value=" + DataFromWebService + "]").attr('selected', 'selected');
$("#SelectMonth").selectmenu('refresh', true);
所以刷新选择器是我唯一缺少的东西。
这里有一个很简单的方法。请使用它
$("#free").val("y").change();
我在上面的例子中遇到了一个问题,这个问题是由于我的选择框值预填充了6个字符的固定长度字符串,但传入的参数不是固定长度。
我有一个rpad函数,它将右垫字符串,到指定的长度,并与指定的字符。因此,填充参数后,它可以工作。
$('#wsWorkCenter').val(rpad(wsWorkCenter, 6, ' '));
function rpad(pStr, pLen, pPadStr) {
if (pPadStr == '') {pPadStr == ' '};
while (pStr.length < pLen)
pStr = pStr + pPadStr;
return pStr;
}
看看jquery selectedbox插件
selectOptions(value[, clear]):
按值选择选项,使用字符串作为参数$("#myselect2")。selectOptions("Value 1");,或者正则表达式$("#myselect2").selectOptions(/^val/i);。
你也可以清除已经选择的选项:$("#myselect2")。selectOptions("Value 2", true);
为了避免所有jQuery版本的复杂性,我真诚地建议使用这些非常简单的javascript函数之一…
function setSelectByValue(eID,val)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].value==val) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}
function setSelectByText(eID,text)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].text==text) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}