Javascript 如何根据输入自动选择选项';s值

Javascript 如何根据输入自动选择选项';s值,javascript,jquery,select,input,option,Javascript,Jquery,Select,Input,Option,我需要根据输入的值在文档就绪时实际选择select的选项 例如: <select id="mySelect"> <option value="1">myVal1</option> <option value="2">myVal2</option> </select> <input type="text" id="myId" value="2"> myVal1 myVal2 例如,我们在页面加载时获得了输入

我需要根据输入的值在文档就绪时实际选择select的选项

例如:

<select id="mySelect">
<option value="1">myVal1</option>
<option value="2">myVal2</option>
</select>

<input type="text" id="myId" value="2">

myVal1
myVal2
例如,我们在页面加载时获得了输入的预定义值“2”。我需要选择框自动选择,它的选项具有与输入“myId”相同的值。我的意思是必须选择“mayVal1”

当输入没有值时,选择必须作为默认值

谢谢

在香草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);
您提到的“on document ready”某种程度上暗示您可能正在使用jQuery,根据这一假设(尽管可能是错误的),我向您提供以下信息:

$(document).ready(
    function(){
        var theValue = $('#myId').val();
        $('option[value=' + theValue + ']')
            .attr('selected',true);
    });


编辑回答OP的问题:

如何将选项的值与输入值中的第一个单词进行比较?我的意思是,如果我有选项值“hello”和输入值“hello world”,脚本必须选择在其值中包含“hello”的选项

好的,考虑到你发布的示例和你的问题之间的差异,我将尝试解决这两种可能性

首先,根据
选项的文本组件选择
选项
(在上述代码中,“myVal1”和“myVal2”位):

:请注意,
选项
元素的文本组件并不表示
选项
元素的值

其次,如果要将输入到
myId
输入元素的值的第一部分链接到
选择
/
选项
元素的值:


这些演示可以与或等效的操作/事件一起使用,但似乎是更好的选择。

下面的内容应该可以使用///

<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"

});

一个
两个
$(文件)。准备好了吗(
var inputValue=$('#id').val();
$('select').val('1');//选择“两个”
$('select').val(inputValue);//还选择“两个”
});

您是否使用任何javascript框架?或者你正在研究如何使用纯Javascript来实现这一点对不起,我忘了说我使用的是JQuery为什么我们需要更改???文本框是在加载时填充的,您所需要做的就是读取并设置它…更新代码。我认为在更改时触发它也是一个好主意,否?上面的代码会在加载时设置选择框吗???如果可以的话。它会处理两种情况,例如用户稍后更改文本框值是的,只要您在窗口中输入代码。onload函数。顺便问一下,您是否在使用jQuery?如果您使用多个选择框,则会给出一个id,这正是我想要的。10倍alot@gov这只是个诀窍…=)我认为,这是因为SO设置的负载平衡方面。所以我们不会在同一时间看到相同的问题;所以我可能比你早几分钟就知道这个问题了。请再问一个问题。如何将选项的值与输入值中的第一个单词进行比较?我的意思是,如果我有选项值“hello”和输入值“hello world”,脚本必须在其值中选择包含“hello”的选项。谢谢
$(document).ready(
    function() {
        $('form:eq(0)').submit(
            function() {
                var theValue = $('#myId').val().split(" ",1);
                $('option:contains(' + theValue + ')').attr('selected', true);
                return false;
            });
    });
$(document).ready(
    function() {
        $('form:eq(0)').submit(
            function() {
                var theValue = $('#myId').val().split(" ",1);
                $('option[value=' + theValue + ']').attr('selected', true);
                return false;
            });
    });
<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"

});