JavaScript-如何更改输入和更改字段值

JavaScript-如何更改输入和更改字段值,javascript,jquery,onchange,Javascript,Jquery,Onchange,我不知道如何使用oninput或onchange方法更改表单字段值。例如,我需要使一个输入字段在另一个输入字段更改后立即更改其值。所以我试着: <input type="number" id="a" value="999.99" oninput="updateInput(value)"/> <input type="number" id="b" value=""/> <script> $(document).ready(function update

我不知道如何使用
oninput
onchange
方法更改表单字段值。例如,我需要使一个输入字段在另一个输入字段更改后立即更改其值。所以我试着:

<input type="number" id="a" value="999.99" oninput="updateInput(value)"/>
<input type="number" id="b" value=""/>

<script>
    $(document).ready(function updateInput(value) {
        document.getElementById("b").value = document.getElementById("a").value;
    });
</script> 

$(文档).ready(函数更新输入(值){
document.getElementById(“b”).value=document.getElementById(“a”).value;
});
它没有任何作用。我做错了什么


在另一种情况下,我需要根据另一个下拉列表(使用
if
子句)更改下拉列表的值。因为上面的简单脚本已经不起作用了,我甚至不知道第二个脚本该怎么办…

这里有一些问题;首先要解决的问题是在哪里声明函数。Javascript有一个作用域的概念,可以将其视为声明变量的容器。函数没有执行任何操作的原因是,
updateInput
的定义被锁定在jquery
$(document.ready
范围内

一旦您将该定义从jquery包装器中取出,它就可用于全局窗口范围,即您在
oninput
中访问的范围。我应该指出,有更灵活/更有用的方法来设置事件侦听器,但如果这是一个简单的用例,那么您所拥有的将起作用

函数更新输入(值){
document.getElementById(“b”).value=document.getElementById(“a”).value;
}

这里有一些问题;首先要解决的问题是在哪里声明函数。Javascript有一个作用域的概念,可以将其视为声明变量的容器。函数没有执行任何操作的原因是,
updateInput
的定义被锁定在jquery
$(document.ready
范围内

一旦您将该定义从jquery包装器中取出,它就可用于全局窗口范围,即您在
oninput
中访问的范围。我应该指出,有更灵活/更有用的方法来设置事件侦听器,但如果这是一个简单的用例,那么您所拥有的将起作用

函数更新输入(值){
document.getElementById(“b”).value=document.getElementById(“a”).value;
}

您的函数在标记中未定义,因为它被传递到
就绪
并在那里确定范围。最好不要将
更新
功能传递给
就绪
,而是在其内部创建并将该功能附加到来自代码的
输入
。不要每次都获取DOM元素,而是获取一次并使用变量保存它们

您还将
jQuery
方法与纯
Javascript
方法混合使用。我认为最好使用其中一种

使用jQuery

$(文档).ready(函数(){
常量输入=$(“#a”);
const bInput=$(“#b”);
aInput.on('input',function(){
bInput.val(aInput.val());
});
})

您的函数在标记中未定义,因为它被传递到
就绪
并在那里确定范围。最好不要将
更新
功能传递给
就绪
,而是在其内部创建并将该功能附加到来自代码的
输入
。不要每次都获取DOM元素,而是获取一次并使用变量保存它们

您还将
jQuery
方法与纯
Javascript
方法混合使用。我认为最好使用其中一种

使用jQuery

$(文档).ready(函数(){
常量输入=$(“#a”);
const bInput=$(“#b”);
aInput.on('input',function(){
bInput.val(aInput.val());
});
})

您必须在
$(document).ready()之外定义
updateInput()
函数,以便您可以从代码的其余部分调用它,否则它的作用域仅限于此

其次,函数所使用的参数从未使用过,因此我冒昧地删除了它

第三,要在页面加载后立即调用此函数,只需在
$(document).ready()中调用它,就可以开始了

下面是一个工作示例:

函数updateInput(){
document.getElementById(“b”).value=document.getElementById(“a”).value;
}
$(document).ready(updateInput())

您必须在
$(document).ready()之外定义
updateInput()
函数,以便您可以从代码的其余部分调用它,否则它的作用域仅限于此

其次,函数所使用的参数从未使用过,因此我冒昧地删除了它

第三,要在页面加载后立即调用此函数,只需在
$(document).ready()中调用它,就可以开始了

下面是一个工作示例:

函数updateInput(){
document.getElementById(“b”).value=document.getElementById(“a”).value;
}
$(document).ready(updateInput())