本帖最后由 freeheartsz 于 2011-07-15 00:06:14 编辑

解决方案 »

  1.   

    这作何解释?
    你先直接调用ReadText() 看能运行到for里边去不?
      

  2.   

    通过按钮的onclick直接调用也是一样
    非得要加一个alert才能执行
    怪啊
      

  3.   

    楼主能解释一下这个
    var fso=new ActiveXObject("Scripting.FileSystemObject");  
    var f=fso.opentextfile("C:\\serial no.txt",1,true)  
    var content =f.ReadAll();
    是什么操作啊    f.ReadAll()什么意思? 不太明白啊
      

  4.   

    C:\\serial no.txt这个文件里面最后一行应该是回车,导致执行循环后document.getElementById("barcode2").value=content.split("\r\n")[i];的值是空的循环很快执行完毕,所以你根本没感觉,相当于没执行
      

  5.   

    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语句写的有意义么?
      

  6.   

    document.getElementById("barcode2").value=content.split("\r\n")[i];
    后面加一句alert(document.getElementById("barcode2").value);
      

  7.   

    这个FOR是为了循环输出TXT文件中的每一行值...
      

  8.   

    alert()只是为了测试时使用
    正式版时是不能使用alert的
      

  9.   

    可以找到的
    因为加上alert()后,一切正常
    代码已经检查过没有任何问题
    现在纠结的是必须运行一个alert()后才能执行后面的语句
    网上查了一下资料
    说和JS加载的顺序有关系
    但也没说明白如何修改
      

  10.   

    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丢到赋值后面看看
    你确认不执行那段赋值语句?
      

  11.   

    function show(){
    document.getElementById('barcode2').value='123'
    document.getElementById("barcode2").value=content.split("\r\n")[i];
    }
    setTimeout(show,1000);
    这样试下
      

  12.   

    试了一下
    代码可以运行了
    但是取不到值
    也就是说document.getElementById("barcode2").value=content.split("\r\n")[i];
    这一句取得的值是undefined
      

  13.   

    ReadAll这个函数是否和你的循环不同步?
      

  14.   


    循环时间太短了 ,value的变化,你根本观察不到 
      

  15.   

    还有就是楼主调试程序的时候不细心,你这样调试肯定输出undefined。你的i都没有定义 。
      

  16.   

    试试这个
    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);
      

  17.   

    纠正下呵呵 试试看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);
      

  18.   

    不说这个问题本身,这段代码实在问题太多了
    1、content.split("\r\n")为何不赋值到循环外的变量,你这样写每次循环都要重新执行两遍split
    2、你连续两次赋值同一个元素的value,那第一次赋值有何意义,反正只可能看到第二次的结果
    3、跟问题2是同一个问题,但是比问题2更严重,居然是在循环里做这样的重复赋值还是先好好理清思路在写代码吧,不要想到哪写到哪
      

  19.   

    你用的是不是submit?换成button!
      

  20.   

    28楼说的对,我之前也老是遇到这个问题,把submit改成button就好了
      

  21.   

    我表示   确实是submit改成button……非常蛋疼 花了许多时间=。=