Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一个选择框设置为另一个选择框?_Javascript - Fatal编程技术网

Javascript 如何将一个选择框设置为另一个选择框?

Javascript 如何将一个选择框设置为另一个选择框?,javascript,Javascript,当然,除了名称之外,我还有两个相同的选择框,当选中复选框时,我需要将第二个选择框的值设置为第一个选择框的值。以下是我的部分代码: <form id="theForm" name="theForm"> <select name="stateSelect" id="stateSelect"> <option value="AL">Alabama</option> <option value="AZ">Ari

当然,除了名称之外,我还有两个相同的选择框,当选中复选框时,我需要将第二个选择框的值设置为第一个选择框的值。以下是我的部分代码:

<form id="theForm" name="theForm">

<select name="stateSelect" id="stateSelect">
        <option value="AL">Alabama</option>
        <option value="AZ">Arizona</option>
        <option value="AR">Arkansas</option>
</select>

<select name="stateSelect2" id="stateSelect2">
        <option value="AL">Alabama</option>
        <option value="AZ">Arizona</option>
        <option value="AR">Arkansas</option>
</select>

<input type="checkbox" name="checky" onClick="doStuff()">
</form>

doStuff() 
{
    // change it from here
}
所以,我尝试了很多不同的东西,包括我在论坛上找到的代码等等,但似乎没有任何效果。javascript函数中应该包含哪些代码,以便在函数运行时,将第二个选择框设置为等于第一个选择框

谢谢你的帮助

试试这个:

var s1=document.getElementById('stateSelect');
var s2=document.getElementById('stateSelect2');
s1.onchange=function(){
    s2.value=s1.value;
}
演示:

试试这个:

var s1=document.getElementById('stateSelect');
var s2=document.getElementById('stateSelect2');
s1.onchange=function(){
    s2.value=s1.value;
}
演示:

其中sel1是第一次选择的id,sel2是第二次选择的id,checkbox是复选框的id:

$('#checkbox').click(function(){
    if ($('#sel2').attr('disabled') != 'disabled') {
        $('#sel2').attr('disabled', 'disabled');
        $('#sel2').val($('#sel1').val());}     
    else
        $('#sel2').removeAttr('disabled');
});
    $('#sel1').change(function(){
    if ($('#sel2').attr('disabled') == 'disabled')
        $('#sel2').val($(this).val());
});
请参见

其中sel1是第一次选择的id,sel2是第二次选择的id,checkbox是复选框的id:

$('#checkbox').click(function(){
    if ($('#sel2').attr('disabled') != 'disabled') {
        $('#sel2').attr('disabled', 'disabled');
        $('#sel2').val($('#sel1').val());}     
    else
        $('#sel2').removeAttr('disabled');
});
    $('#sel1').change(function(){
    if ($('#sel2').attr('disabled') == 'disabled')
        $('#sel2').val($(this).val());
});

请参见

是否启用了jQuery或其他JS框架?我宁愿问,因为没有它会有点复杂。@haltabush-不,我没有任何框架:-您启用了jQuery或其他JS框架吗?我宁愿问,因为没有它会有点复杂。@haltabush-不,我没有任何框架:-Stewe-谢谢,这看起来很有希望,但我恐怕不太理解它,我需要它稍微不同一点。是否有任何方法可以使第二个选择框的值在任何旧函数中更改,而不是在您创建的特殊函数中更改?是的,只需使用s2.value=s1.value;在您的函数中。不特别是跨浏览器,取决于具有等效值属性的选项。可能更适合使用s2.selectedIndex=s1.selectedIndex,它在这种情况下给出了相同的结果。这怎么不跨浏览器呢?是吗。价值观不起作用?斯图-谢谢,这看起来很有希望,但我恐怕不太明白,我需要它稍微不同于这一点。是否有任何方法可以使第二个选择框的值在任何旧函数中更改,而不是在您创建的特殊函数中更改?是的,只需使用s2.value=s1.value;在您的函数中。不特别是跨浏览器,取决于具有等效值属性的选项。可能更适合使用s2.selectedIndex=s1.selectedIndex,它在这种情况下给出了相同的结果。这怎么不跨浏览器呢?是不是.value不起作用了?哎呀,直到我发布之后才发现你没有使用框架。我想这就是我假设的结果……哎呀,直到我发布了一篇文章之后,我才发现你没有使用框架。我想这就是我假设。。。