как отобразить текстовое поле в div

#javascript

#javascript

Вопрос:

Это моя index.php страница. Также форма находится в моем всплывающем окне для получения описания.

 <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>

<div>
    <noscript>Please enable JavaScript to see this form correctly</noscript>
</div>

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

это мой файл Javascript upload.js .

там находятся выбранные пользователем файлы.—>

var files=новый массив(); функция insert(список файлов) { файлы[files.длина]= список файлов;

             var filenames=(files.valueOf());
  

максимальный размер файла = files.длина;
var current = 0;
функция goto (форма, pos)
{

 current  = pos;
form.prev.disabled = current <= 0;
form.next.disabled = current >= max - 1;
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();
}
  

хранилище функций (форма)
{

 var input = form.getElementsByTagName('input');
var data = ''; 
for (var i = 0; i < input.length; i  ) {
    if (input[i].getAttribute('type') == 'text')
        data  = 'amp;'   input[i].getAttribute('name')   '='   input[i].value;
}
data = encodeURI('n='   max   data);
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
xhr.open('POST', 'datainsert.php', true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('Content-length', data.length);
xhr.setRequestHeader('Connection', 'close');
xhr.onreadystatechange = function() {
    if (this.readyState == 4 amp;amp; this.status == 200) {
        if (this.responseText != '')
             alert(this.responseText); 
     else {

            form.submit.value = 'Saved!';
            setTimeout(function() { form.submit.value = 'Save to database' }, 500);
        }

    }
}
xhr.send(data);

}






window.onload = function() 
{
    var form = document.forms[0];
    var container = form.getElementsByTagName('div')[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);

}
  

<div>…</div> Текстовые поля не отображались. Почему?

Комментарии:

1. прежде всего поместите свой код в блок кода с использованием формата, во-вторых, чего вы именно хотите?

2. Вы не можете использовать goto в JavaScript. Более того, не добавляйте текст в innerHTML так, как вы это делали; вместо этого используйте временную строку и измените innerHTML один раз.

3. @Marcel, взгляни на его кнопки ввода onclicks — goto должна быть определенной функцией: function goto(form, integer) {...} . Я согласен, что название плохое и вводит в заблуждение, но я не думаю, что он имел в виду использовать его как goto из базовых языков.

4. @rochal: Ах, да, вы правы. Просто это ключевое слово запускает какие-то автоматы в моем мозгу.

5.какую ошибку вы получаете? Вы уверены, что это max правильно установлено перед onload вызовом?

Ответ №1:

Моя интуиция подсказывает мне, что вы передаете max неправильно, поэтому это либо undefined, либо 0, поэтому цикл никогда не запускается, ЛИБО ваши селекторы неверны — добавьте идентификаторы к своим элементам и сделайте это следующим образом:

 <form id="myForm" 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>

<div id="container">
    <noscript>Please enable JavaScript to see this form correctly</noscript>
</div>

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

window.onload = function() 
{
    var form = document.getElementById('myForm');
    var container = document.getElementById('container');
    container.innerHTML = '';
    var html = '';
    for (var i = 0; i < max; i  )
    {
        var ofValue = (i   1)   ' / '   max;
        html  = '<fieldset style="width: 250px; height: 80px;">';
        html  = '<legend>Files of '   ofValue   '</legend>';
        html  = '<input type="text" name="name'   i   '" /><br /><br />';
        html  = '<input type="text" name="topic'   i   '" /></fieldset>';
    }
    container.innerHTML = html;

    goto(form, 0); //I am assuming this is a valid, defined method
                   //because it is also called from onclicks of Next/Prev buttons
}
  

Комментарии:

1. я буду показывать только два текстовых поля для каждого click….in в вашем скрипте отображается всего 4 текстовых поля………………… это html и js скрипты на одной странице ……. но я покажу текстовое поле в моем всплывающем окне …. приведенный выше код не сработал…….

2. @SANS: количество отображаемых полей зависит от max , вы не показали, как оно объявлено. Еще раз: вы уверены, что max оно правильно установлено перед onload срабатыванием? Более того, max передается не как параметр, а как глобальная переменная, которую не следует использовать, это плохая привычка программирования.

3. я использовал концепцию, чтобы получить описание для каждого файла …….. если пользователь выберет 10 файлов, то на каждый файл выделяется по два текстовых поля для каждого click……….so max = (10) нет файлов (полностью), которые я ….. я уже выполнил …… но только проблемы с div ……….. итак, вы можете подсказать мне какую-нибудь идею

4. @SANS и как и где вы назначили max ? Можете ли вы показать нам свой код (отредактировав свой вопрос)? И помните, ‘u’ — это буква, а не ‘you’.

Ответ №2:

поместите id="div1" в свой тег div, он будет вести себя как идентификатор для JavaScript на всей вашей странице

 <div id="dvi1">
    <noscript>Please enable JavaScript to see this form correctly</noscript>
</div>
  

Ответ №3:

 <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>

    <div  id="div1">
        <noscript>Please enable JavaScript to see this form correctly</noscript>
    </div>


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



window.onload = function() 
{

    var container = documentgetElementByid("div1");
    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);

}