如何在窗口加载后分配变量值

时间:2011-06-16 05:57:51

标签: javascript

如何显示文本框.....请参阅。我将在onload之后分配的最大值,因此下面的代码不起作用........

最大值等于用户选择的文件数。 在加载页面之前我无法分配..

<form action="" method="post" onsubmit="store(this); return false">
    <p>
        <input type="button" name="prev" onclick="goto(this.form, -1)" value="Previous" />
        <input type="button" name="next" onclick="goto(this.form, +1)" value="Next" />
    </p>
    <divs>
        <noscript>Please enable JavaScript to see this form correctly</noscript>
    </divs>
    <div id="filename"></div>

    <p>
        <input type="submit" name="submit" value="Store in database" />
    </p>
</form>




 <!-------------user selected file's name in array------------------>
 var filelist=new Array();
          function insert(filess) 
             {
                filelist[filelist.length]=filess; 
                var sahan=(filelist.valueOf());
               }


max=filelist.length;

window.onload = function() {
    var form = document.forms[0];
    var container = form.getElementsByTagName('divs')[0];
    container.innerHTML = '';
    for (var i = 0; i < max; i++)
        container.innerHTML += '<fieldset style="width: 250px; height: 80px;"><legend>Files of ' +(i + 1) + ' / ' + max + '</legend><input type="text" name="name' + i + '" /><br /><br /><input type="text" name="topic' + i + '" /></fieldset>';
    goto(form, 0);
}

2 个答案:

答案 0 :(得分:2)

有太多问题无法提及。

  1. 你需要在使用它之前获得最大值,所以调用insert并从那里发出调用来构建列表
  2. 你需要传递最大值或使其在范围内全局
  3. 您正在使用两种不同的ajax方法
  4. 你没有在任何地方使用jQuery等等。
  5. 这是一个工作演示,在onload之前设置了最大值。

    http://jsfiddle.net/mplungjan/rnJWX/

    var maximum=0, current = 0;
    $(document).ready(function(){
        maximum=10;
        var container = $("#sankar");
        container.hide();
        container.empty();
        for (var i = 0; i < maximum; i++) {
          container.append('<fieldset style="width: 250px; height: 80px;"><legend>Files of ' +(i + 1) + ' / ' + maximum + '</legend><input type="text" name="name' + i + '" /><br /><br /><input type="text" name="topic' + i + '" /></fieldset>');
        }    
        goto(form, 0);
        container.show();
    })
    
    
    function goto(form, pos) {
        current += pos;
        $('#my_div').html("Hiding all "+maximum+" sets and showing set #"+current+"..."); // sankar[curent];
        form.prev.disabled = current <= 0;
        form.next.disabled = current >= maximum - 1;
    // you can do jQuery here too
        var fields = form.getElementsByTagName('fieldset');
        for (var i = 0; i < fields.length; i++) fields[i].style.display = 'none';
        fields[current].style.display = 'block';
        form['name' + current].focus();
    }
    

答案 1 :(得分:0)

好吧,既然您已经为“容器”元素添加了ID,那么您应该使用document.getElementById('divs')而不是form.getElementsByTagName('divs')[0]。 在您当前的代码中,container将为undefined