Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.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 当我使用select选项时,如何设置输入值?带if的Java脚本_Javascript_Select_If Statement_Input - Fatal编程技术网

Javascript 当我使用select选项时,如何设置输入值?带if的Java脚本

Javascript 当我使用select选项时,如何设置输入值?带if的Java脚本,javascript,select,if-statement,input,Javascript,Select,If Statement,Input,我有以下脚本: <!DOCTYPE html> <HTML> <HEAD> <META charset="UTF-8"> <SCRIPT src="scripts2.js"></SCRIPT> </HEAD> <BODY> <FORM> <SELECT name="receipt" onc

我有以下脚本:

<!DOCTYPE html>
<HTML>
    <HEAD>
        <META charset="UTF-8">
        <SCRIPT src="scripts2.js"></SCRIPT>
    </HEAD>
    <BODY>
        <FORM>
            <SELECT name="receipt" onchange="set_input_value()">
                <OPTION id="P" value="P">P / </OPTION>
                <OPTION id="b" value="b">b / </OPTION>
            </SELECT>
            <INPUT type='text' id='id1' />
        </FORM>
    </BODY>
</HTML>
我想做点像这样的东西。如果选择选项“P”,则将输入值设置为1。如果我选择选项“b”,则将输入值设置为2


对不起,如果它已经在某处解决了,但我没有找到它。感谢您的帮助。

您可以通过在JavaScript中完全创建事件处理程序来保持标记的整洁,还可以使用
查找当前选定的
值。您应该为您的
select
元素提供ID,而不是
选项
子元素:

<select id="receipt">

document.getElementById("receipt").onchange = function() {
    var input = document.getElementById('id1');
    // You could do this.  The select box will take on the selected option's value:
    // var value = document.getElementById("receipt").value;
    // but since `this` already is the select box, you can just do it this way:
    var value = this.value;

    if (value == "b")
        input.value = 2;
}

document.getElementById(“收据”).onchange=function(){
var input=document.getElementById('id1');
//您可以这样做。选择框将采用所选选项的值:
//var值=document.getElementById(“收据”).value;
//但由于“this”已经是选择框,您可以这样做:
var值=此值;
如果(值=“b”)
input.value=2;
}

您需要检查SELECT元素的值。您将通过id获取OPTION元素并检查其值。将其更改为:

<!DOCTYPE html>
<HTML>
    <HEAD>
        <META charset="UTF-8">
        <SCRIPT src="scripts2.js"></SCRIPT>
    <SCRIPT type='text/javascript'>
    function set_input_value(){
        if(document.getElementById('receipt').value=='P'){
            document.getElementById('id1').value='1';
        }
        if(document.getElementById('receipt').value=='b'){
            document.getElementById('id1').value='2';
        }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
        <FORM>
            <SELECT id='receipt' name="receipt" onchange="set_input_value()">
                <OPTION id="P" value="P">P / </OPTION>
                <OPTION id="b" value="b">b / </OPTION>
            </SELECT>
        <INPUT type='text' id='id1' />
        </FORM>
    </BODY>
</HTML>

函数集\输入\值(){
if(document.getElementById('receive')。value='P'){
document.getElementById('id1')。value='1';
}
if(document.getElementById('receive')。值=='b'){
document.getElementById('id1')。value='2';
}
}
P/
b/

遵循使用jQuery的建议。
我把所有的代码

HTML+JQuery:

<!DOCTYPE html>
<html>
    <head>
        <title>StackTest</title>        
    </head>
    <script src="http://code.jquery.com/jquery-1.11.0.js"></script>
    <script>
        function changeValue(valor) {
            if(valor == 'P') {
                $('#text1').val('1');
            } else if (valor == 'b') {
                $('#text1').val('2');
            } else {
                $('#text1').val('');
            }
        }
    </script>
    <body>
        <select id="combo" onchange="changeValue(this.value)">
            <option value=""></option>
            <option value="P">P /</option>
            <option value="b">b /</option>
        </select>
        <input type="text" id="text1" />
    </body>
</html>

堆叠测试
函数更改值(valor){
如果(valor='P'){
$('#text1').val('1');
}否则如果(valor='b'){
$('#text1').val('2');
}否则{
$('#text1').val('');
}
}
P/
b/

应该被标记为
javascript
而不是
java
。你也应该把你的函数名改成一个更容易接受的名称:set\u input\u value()->setInputValue()@AlexisLeclerc
set\u input\u value
怎么样?在我看来,这是一个风格决定。它对它的工作方式没有影响。@ScottMermelstein他当然有权拥有自己的命名风格,但人们应该尽可能遵循所用语言的编码约定,就像我可以决定这样写一样,如果我愿意的话,但这看起来会很尴尬!我用一些注释修改了你的代码。如果这是粗鲁的或冒犯性的,请随意回退。
<!DOCTYPE html>
<html>
    <head>
        <title>StackTest</title>        
    </head>
    <script src="http://code.jquery.com/jquery-1.11.0.js"></script>
    <script>
        function changeValue(valor) {
            if(valor == 'P') {
                $('#text1').val('1');
            } else if (valor == 'b') {
                $('#text1').val('2');
            } else {
                $('#text1').val('');
            }
        }
    </script>
    <body>
        <select id="combo" onchange="changeValue(this.value)">
            <option value=""></option>
            <option value="P">P /</option>
            <option value="b">b /</option>
        </select>
        <input type="text" id="text1" />
    </body>
</html>