我需要在文档就绪时实际选择select的选项,具体取决于输入的值。
示例:
<select id="mySelect">
<option value="1">myVal1</option>
<option value="2">myVal2</option>
</select>
<input type="text" id="myId" value="2">
例如,我们在页面加载时输入的预定义值为“2”。我需要选择框自动选择,其选项具有与输入'myId'相同的值。我的意思是'mayVal1'必须被选中。
当输入没有值时,select必须表现为默认值。
谢谢!
答案 0 :(得分:5)
你提到的“on document ready”有点暗示你可能正在使用jQuery,假设(虽然可能是错误的),我提供给你:
$(document).ready(
function(){
var theValue = $('#myId').val();
$('option[value=' + theValue + ']')
.attr('selected',true);
});
已编辑以回应OP的问题:
如何将选项的值与输入值中的第一个单词进行比较?我的意思是如果我有选项值'hello'并且输入值'hello world'脚本必须在其值中选择包含'hello'的选项。
是的,鉴于您发布的示例与您的问题之间存在差异,我将尝试解决这两种可能性。
首先,根据文字组件选择option
(在上面的代码中,'myVal1','myVal2'位):
$(document).ready(
function() {
$('form:eq(0)').submit(
function() {
var theValue = $('#myId').val().split(" ",1);
$('option:contains(' + theValue + ')').attr('selected', true);
return false;
});
});
JS Fiddle demo:请注意option
元素的文本组件不表示option
元素的值。
其次,如果要将输入到myId
输入元素中的值的第一部分链接到select
/ option
元素的值 (一个或多个):
$(document).ready(
function() {
$('form:eq(0)').submit(
function() {
var theValue = $('#myId').val().split(" ",1);
$('option[value=' + theValue + ']').attr('selected', true);
return false;
});
});
答案 1 :(得分:1)
in vanilla JS:
var listener = function(ev){
var input = document.getElementById('myId');
for(var i = 0, elems = document.getElementById('mySelect'), l = elems.length; i < l; i++)
elems[i].selected = elems[i].value == input.value;
}
listener();
document.getElementById('myId').addEventListener('change', listener, false);
使用jQuery:
$(function(){
$('#myId').change(function(){
$('#mySelect option').removeAttr('selected').filter('[value=' + $(this).val() + ']').attr('selected', true);
}).change()
})
答案 2 :(得分:0)
下面的内容应该起作用///
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
$(document).ready(
var inputValue = $('#id').val();
$('select').val('1'); // selects "Two"
$('select').val(inputValue); // also selects "Two"
});