很奇怪的问题!只有运行alert()后,接下来的语句才能执行! 本帖最后由 freeheartsz 于 2011-07-15 00:06:14 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这作何解释?你先直接调用ReadText() 看能运行到for里边去不? 通过按钮的onclick直接调用也是一样非得要加一个alert才能执行怪啊 楼主能解释一下这个var fso=new ActiveXObject("Scripting.FileSystemObject"); var f=fso.opentextfile("C:\\serial no.txt",1,true) var content =f.ReadAll();是什么操作啊 f.ReadAll()什么意思? 不太明白啊 C:\\serial no.txt这个文件里面最后一行应该是回车,导致执行循环后document.getElementById("barcode2").value=content.split("\r\n")[i];的值是空的循环很快执行完毕,所以你根本没感觉,相当于没执行 for(var i=0;i<=content.split("\r\n").length-1;i++){alert('123')document.getElementById('barcode2').value='123'document.getElementById("barcode2").value=content.split("\r\n")[i];}这个for语句写的有意义么? document.getElementById("barcode2").value=content.split("\r\n")[i];后面加一句alert(document.getElementById("barcode2").value); 这个FOR是为了循环输出TXT文件中的每一行值... alert()只是为了测试时使用正式版时是不能使用alert的 可以找到的因为加上alert()后,一切正常代码已经检查过没有任何问题现在纠结的是必须运行一个alert()后才能执行后面的语句网上查了一下资料说和JS加载的顺序有关系但也没说明白如何修改 for(var i=0,var list=content.split("\r\n");i<=list.length-1;i++){document.getElementById("barcode2").value=list[i];alert(list[i])}试试把alert丢到赋值后面看看你确认不执行那段赋值语句? function show(){document.getElementById('barcode2').value='123'document.getElementById("barcode2").value=content.split("\r\n")[i];}setTimeout(show,1000);这样试下 试了一下代码可以运行了但是取不到值也就是说document.getElementById("barcode2").value=content.split("\r\n")[i];这一句取得的值是undefined ReadAll这个函数是否和你的循环不同步? 循环时间太短了 ,value的变化,你根本观察不到 还有就是楼主调试程序的时候不细心,你这样调试肯定输出undefined。你的i都没有定义 。 试试这个setTimeout((function() { return function() { for(var i=0;i<=content.split("\r\n").length-1;i++){ document.getElementById('barcode2').value='123'; document.getElementById("barcode2").value=content.split("\r\n")[i]; } }})(content),0); 纠正下呵呵 试试看setTimeout((function(content) { return function() { for(var i=0;i<=content.split("\r\n").length-1;i++){ document.getElementById('barcode2').value='123'; document.getElementById("barcode2").value=content.split("\r\n")[i]; } }})(content),0); 不说这个问题本身,这段代码实在问题太多了1、content.split("\r\n")为何不赋值到循环外的变量,你这样写每次循环都要重新执行两遍split2、你连续两次赋值同一个元素的value,那第一次赋值有何意义,反正只可能看到第二次的结果3、跟问题2是同一个问题,但是比问题2更严重,居然是在循环里做这样的重复赋值还是先好好理清思路在写代码吧,不要想到哪写到哪 你用的是不是submit?换成button! 28楼说的对,我之前也老是遇到这个问题,把submit改成button就好了 我表示 确实是submit改成button……非常蛋疼 花了许多时间=。= 按钮样式变换,这个按下另一个弹起 怎样用通用按钮实现发送功能? extjs 桌面 Widget做烟花的效果,除了切换图片还有其他的方法么,用JS+HTML 问一个无知的问题 一个JAVASCRIPT的问题~~~~在线等~~~很急~~~完了就结贴~~~~ 字符串中提取特定子串的问题 “杀人啦!救命啊!” 急!如何变换IE的背景音乐? 搜索局域网内已知的的ftp站点是否开着,用脚本能不能做 关于js中原型对象的几道题 如何把字符串"123,abc,xy,hi"转换成数组或者jQuery数组?
你先直接调用ReadText() 看能运行到for里边去不?
非得要加一个alert才能执行
怪啊
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.opentextfile("C:\\serial no.txt",1,true)
var content =f.ReadAll();
是什么操作啊 f.ReadAll()什么意思? 不太明白啊
alert('123')
document.getElementById('barcode2').value='123'
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
这个for语句写的有意义么?
后面加一句alert(document.getElementById("barcode2").value);
正式版时是不能使用alert的
因为加上alert()后,一切正常
代码已经检查过没有任何问题
现在纠结的是必须运行一个alert()后才能执行后面的语句
网上查了一下资料
说和JS加载的顺序有关系
但也没说明白如何修改
document.getElementById("barcode2").value=list[i];
alert(list[i])
}
试试把alert丢到赋值后面看看
你确认不执行那段赋值语句?
document.getElementById('barcode2').value='123'
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
setTimeout(show,1000);
这样试下
代码可以运行了
但是取不到值
也就是说document.getElementById("barcode2").value=content.split("\r\n")[i];
这一句取得的值是undefined
循环时间太短了 ,value的变化,你根本观察不到
setTimeout((function() {
return function() {
for(var i=0;i<=content.split("\r\n").length-1;i++){
document.getElementById('barcode2').value='123';
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
}
})(content),0);
return function() {
for(var i=0;i<=content.split("\r\n").length-1;i++){
document.getElementById('barcode2').value='123';
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
}
})(content),0);
1、content.split("\r\n")为何不赋值到循环外的变量,你这样写每次循环都要重新执行两遍split
2、你连续两次赋值同一个元素的value,那第一次赋值有何意义,反正只可能看到第二次的结果
3、跟问题2是同一个问题,但是比问题2更严重,居然是在循环里做这样的重复赋值还是先好好理清思路在写代码吧,不要想到哪写到哪