Javascript 如何根据输入自动选择选项';s值
我需要根据输入的值在文档就绪时实际选择select的选项 例如: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 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"
});