为什么javascript IF只能运行一次?

时间:2010-04-08 18:21:59

标签: javascript javascript-events

我有javascript代码,它会复制输入文件的值并实时显示在文本框中。

<script>
function copyit(){

var thephoto=document.getElementById('thephoto').value;
var fileonchange=document.getElementById('fileonchange').value;

if(!thephoto==fileonchange){
document.getElementById('fileonchange').value=thephoto;
}

}

window.setInterval("copyit()", 500);  
</script>

Choose File : <input type="file" id="thephoto"><br>
Here Is the file name : <input type="text" id="fileonchange">

可悲的是,这只能运行一次,然后在再次更改文件时停止粘贴该值。 (我的意思是你应该重新加载页面再次工作)

IF有缓存还是什么?你可以自己试试看代码。

谢谢大家

5 个答案:

答案 0 :(得分:8)

语法错误。您需要!=运算符来表示不等式:

if (thephoto != fileonchange) {

!thephoto实际上反转其布尔表示(即true变为false,反之亦然,null变为true==实际上比较了两个操作数的相等性。

答案 1 :(得分:2)

尝试将IF行更改为:

if(thephoto!=fileonchange){

答案 2 :(得分:1)

BalusC是完全正确的,但恕我直言每隔500毫秒使用一个计时器来完成这个简单的任务似乎相当沉重。

为什么不简单地使用onchange的{​​{1}}事件?,例如:

<input type="file" />

检查上面的示例here

答案 3 :(得分:1)

正如W3C所说,输入元素接受onchange方法。你为什么不这样做:

<input type="file" id="thephoto" onchange="copyit()">

而不是使用可怕的setInterval?

答案 4 :(得分:0)

使用!==进行严格的不平等。

或者,如果您想使用与您编写的语法类似的内容,请执行以下操作:

if(!(thephoto==fileonchange)){