如何在此案例javascript上使用事件onchange?
首先将数据填入输入id="one"
,然后输入id="two"
中的数据将更改数据,例如输入id="one"
但是,当输入id="two"
中的数据发生变化时,为什么不调用fn_2
函数(为什么不警告)?
http://jsfiddle.net/A4wxX/111/
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script>
function fn_1()
{
var aaa = document.getElementById('one').value;
document.getElementById("two").value = aaa;
}
</script>
<script>
function fn_2()
{
var bbb = document.getElementById('two').value;
alert(bbb);
}
</script>
<input type="text" id="one" onchange="fn_1()"/>
<input type="text" id="two" onchange="fn_2()" style="display: none"/>
答案 0 :(得分:1)
您想要的是在更改第一个输入框的值时,获取此值并将其设置为第二个输入框并发出警报。 在这种情况下,onchange事件不会被触发。为此,您需要手动调用第二个输入框的onchange事件。
<script>
function fn_1() {
var aaa = document.getElementById('one').value;
var second_input_elem = document.getElementById("two");
second_input_elem.value = aaa;
second_input_elem.onchange();
}
答案 1 :(得分:0)
它工作得很好。
<script>
function fn_2()
{
var bbb = document.getElementById('two').value;
document.getElementById("one").value = bbb;
}
</script>
答案 2 :(得分:0)
onchange
确实有效,请在输入新值后点击输入框外部...
但您可能希望价值立即更新...使用JavaScript oninput
即可实现此目标。
document.getElementById("one").onchange=function(){
document.getElementById("result_one").innerHTML = this.value;
}
document.getElementById("two").oninput=function(){
document.getElementById("result_two").innerHTML = this.value;
}
只要元素的状态发生变化,元素result_one
就会更新。所以focused
或blurred
...只要有新输入,result_two
元素就会更新。
以下是JSFiddle示例。
Edit:
看来我误解或误解了这个问题,但无论如何它仍然有用。
Edit 2:
我似乎再一次误解了这个问题......
为什么没有提醒?
如果您在将值input one
和input two
更改后的值时预计会收到提醒,那么您正在查看错误的内容...... {{1当元素的状态发生变化时触发函数(对于输入,当值发生变化时+当状态发生变化时)。当值本身发生变化时,onchange
函数不会触发...并且由于示例中的原因,警报未被触发,因为状态不会发生变化,仅价值。
但你为什么要这样做?您基本上创建了两个输入,onchange
只有一个来自input two
的值...并且您在一个元素上绑定一个事件,您可以动态创建该值。它看起来有点混乱......更好的选择是在input one
的功能中发出警报......
input one
答案 3 :(得分:0)
使用onchange对select元素很有用,在你的情况下,如果你使用'onblur'会更好:
<script>
function fn_1()
{
var aaa = document.getElementById('one').value;
document.getElementById("two").value = aaa;
fn_2();
}
function fn_2()
{
var bbb = document.getElementById('two').value;
alert(bbb);
}
</script>
<input type="text" id="one" onblur="fn_1()"/>
<input type="text" id="two" onblur="fn_2()" style="display: none"/>
答案 4 :(得分:0)
onchange
事件将在文本字段中更改某些文本并且变为焦点时生效。
希望你这样想。我们看到,它正在以这种方式运作。
如果您想要一种更自动的方法,可以onkeyup
字段使用id="one"
,onkeypress
字段使用id="two"
,但在这种情况下应该可以看到1} p>
e.g。
//no need to include jQuery library when you are not using it
<script type="text/javascript">
function fn_1()
{
var aaa = document.getElementById('one').value;
document.getElementById("two").value = aaa;
}
function fn_2()
{
var bbb = document.getElementById('two').value;
alert(bbb);
}
</script>
<input type="text" id="one" onkeyup="fn_1()" />
<input type="text" id="two" onkeypress="fn_2()" />
由于您在示例中使第二个字段不可见,因此您将永远不会收到警报,因为有人会为此尝试onchange事件?您能告诉我们如何在第二个字段中处理数据吗?是通过一些JavaScript事件(因此你想要onchange
事件)将数据填入其中,还是直接将光标放入其中并进行更改?如果是这样,那么它已经在运作。