当我做某事时,我需要能够将选择菜单中的某个选项更改为默认(开始)值。
例如,当我声明它时,英语是默认值。
如何使用代码而不是点击来更改它。
<form id="form1" name="form1" method="post" action="">
<select name="websites1" id="websites1" style="width:120px" tabindex="1">
<option value="english" selected="selected" title="images/us.gif">English</option>
<option value="espanol" title="images/es.gif">Espanol</option>
<option value="italian" title="images/it.gif">Italiano</option>
</select>
</form>
在身体标签中我声明:
<script type="text/javascript">
$(document).ready(function() {
$("body select").msDropDown();
});
</script>
我正在使用此SCRIPT
我已经尝试了所有这些下面的例子,但这对我没有好处。
我还可以做些什么来更改默认选择值。
答案 0 :(得分:11)
这对我来说正如文档中提到的那样:
$('#websites1').msDropDown().data('dd').set('selectedIndex',2);
这将选择 italian ;)
/编辑:
请记住,@ Patrick M有一个更先进的方法,他在我发布之前发布了他的方法;)
如果您遇到像我一样的奇怪的CSS问题,请尝试这些未记录的内容:
$('#websites1_msa_2').click(); // this will also select the italian
正如您所看到的,ID是由$('#strong> websites1 _msa_2')生成的,其中包含selectbox的ID和$('#websites1_msa_ 2 ')索引期权项目。
有点hacky但有效;)
因此,您可以像这样定义一个JavaScript函数:
var jQueryImageDD_selectByName = function(name) {
var children = $('#websites2_child').children();
for(var i=0;i<children.length;i++) {
var label = children[i].getElementsByTagName('span')[0].innerHTML;
if(label === name) {
children[i].click()
}
}
};
然后像这样使用它:
jQueryImageDD_selectByName('Italiano'); // will select Italiano :)
答案 1 :(得分:2)
他确实说过
您可以通过对象
设置几乎所有属性
所以,只要从他在该页面上提供的文档示例中猜测......我会考虑改编:
var oHandler = $('#comboboxid').msDropDown().data("dd");
oHandler.size([true|false]);
//Set or get the size property
.value
属性可能有效。因此,要将语言设置为意大利语,请尝试
var oHandler = $('#comboboxid').msDropDown().data("dd");
oHandler.value('italian');
// Or maybe the way to do it is this:
oHandler.set('value', 'italian');
// Or maybe 'value' shouldn't be in single quotes
//set property
如果这不起作用,您可以尝试循环遍历所有属性,获取并比较每个索引的值,并在找到时将所选索引设置为该属性名称。
var languageSelect = $('websites1');
var oHandler = $('#websites1').msDropDown().data("dd");
for(var index = 0; index < languageSelect.length; index++) {
var option = oHandler.item([index]);
if(option == 'italian') {
oHandler.set("selectedIndex", index);
break;
}
}
其中一个应该有用。如果没有,你几乎不得不等待作者的回复。
答案 2 :(得分:1)
您可以使用selectedIndex
更改所选选项的索引(0为第一个)
document.getElementById("websites1").selectedIndex = 1; //espanol
,或者您可以使用value
更改值的文本(如果匹配,则会自动更改)。
document.getElementById("websites1").value = 'espanol';
答案 3 :(得分:0)
使用selectedIndex
。见this page。 select控件具有options
属性,它基本上是一个选项元素数组。您选择的第一个元素是选项[0],英语,所以:
document.getElementById("websites1").selectedIndex = 0; //=> english
您还可以使用以下方式选择第一个选项:
document.getElementById("websites1").options[0]
.defaultSelected = true; //=> english by default
答案 4 :(得分:0)
工作选项(1.销毁msdropdown,2。按值选择,3。设置msdropdown)
将此代码放在js中的某处:
jQuery.fn.extend({
setValue: function(value) {
var dd = $(this).msDropdown().data("dd");
dd.destroy();
$(this).val(value);
$(this).msDropdown();
}
});
设定值:
$('#selectorOfmsDropDown').setValue('opt10');
或只是:
$("#selector").msDropdown().data("dd").setIndexByValue(newvalue);