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

how to assign variable value after window onload

本文关键字:分配 变量值 加载 窗口      更新时间:2023-09-26

如何显示文本框。。。。。看见我将在加载后分配的最大值,因此以下代码不起作用。。。。。。。。

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

<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);
}

有太多的问题需要提及。

  1. 在使用它之前,您需要获得最大值,因此调用insert并从中发出调用以构建列表
  2. 您需要绕过最大值,或者使其在范围内全局化
  3. 您正在使用两种不同的ajax方法
  4. 您并没有在任何地方都使用jQuery等等

这是一个在加载前设置最大值的工作演示。

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();
}

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