我有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
有缓存还是什么?你可以自己试试看代码。
谢谢大家
答案 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)){