Создание елементов из формы.
Добрый вечер, есть форма, человек вписывает цифровое значение и создаеться столько html елементов, сколько он вписал. Я в js слобоват, прошу вашей помощи. :thanks:
|
Цитата:
(Используйте для вставки HTML кнопку ![]() |
<script> var num_track = days_calc(getElementById('submit').value); function days_calc() { var track_list = document.createElement('div'); track_list.innerHTML = '<p> Название песни <input type="text"> url: <input type="text"></p>'; document.body.appendChild(track_list); } </script> <p><input type="text" id="num_track"> Введите кол-во песен</p> <p><input type="submit" value="Продолжить" onclick="days_calc()" id="submit"></p> |
romaalupka,
:) А где сама форма ? <form И второе - по клику на субмит(если форма есть) смениться страница ? Cмысл в элементах ? |
Ну дело в том что мне нужен типо как калькулятор, есть форма, в ней поле, я ввожу число, потом сабмит, создаються еще поля, я их заполняю, клик самбмит, генериться текст ареа внутри с html кодом. Не знаю, понятно обьяснил или нет :)
|
romaalupka,
А как форма не переадресует у Вас по субмиту (или это уже все осуществлено ? И я так и не понял - какой элемент нужно создавать(копировать) и вставлять (нужное количество) - поясните |
Сказать честно, не совсем понял вас :) Переадресовывать это вы про action="" ?? я этот весь фунционал хочу реализовать на js.
|
romaalupka,
фиг с ней с формой - я тоже не понял -- у Вас было: Цитата:
================================================== === Где дублируемый элемент ? Цитата:
|
<p> Название песни <input type="text"> url: <input type="text"></p>
|
Вот эту строку нужно дублировать.
|
<!DOCTYPE HTML> <html> <head> <script> function Num_calc(a) { var Max_track = 20; //Максимальное кол-во, вводимое за один раз; var b = a.value.replace(/^(\d*)$/,'$1');//alert( +b) a.value=a.value.replace(/\s|[^\d]/g,''); if((a.value!=''&& b=='')||b.replace(/^\d*$/,'')!=''){alert('Неверный Ввод!');return;} if(+b%(Max_track+1)!=b){alert('Число более '+Max_track+'!');a.value=(+a.value)%(Max_track);return;} } function days_calc() { var a = document.getElementById('num_track'); var N = +a.value; a.value=''; for(var i=0; i<N; i++) { var track_list = document.createElement('div'); var DigLen=3;if(i+1>9){DigLen=1;}; DigLen = 'xxx'.substr(0,(DigLen)).replace(/x/g,' ') track_list.innerHTML = '<p> Название песни №'+(i+1)+DigLen+'<input type="text"> url: <input type="text"></p>'; document.getElementById('Wrp_Track_List').appendChild(track_list); } } </script> </head> <body> <div id="Wrp_Track_List"></div> <div style="color:#7F9DB9;max-width:400px;float:left;"><hr style="color:#7F9DB9;width:400px;"></div><br> <p><input type="text" maxlength="3" size="3" id="num_track" onkeyup="Num_calc(this)" oninput="Num_calc(this)"> Введите кол-во песен (не более 20 за раз)</p> <p><input type="submit" value="Продолжить" onclick="days_calc()" id="submit"></p> </body> </html> |
Deff,
как вариант без RegExp function Num_calc(a) { var Max_track = 20; //Максимальное кол-во, вводимое за один раз; var b = parseInt(a.value, 10) if(!b){alert('Неверный Ввод!');a.value = '';return;} if(b > Max_track){alert('Число более '+Max_track+'!');a.value=b%Max_track;return;} } |
рони,
Не заморачивался, хотя изящнее ---------------------------- Вот это (a.value!=''&& b=='') Важно - иначе стереть нельзя при неправильном вводе а при parseInt(a.value, 10) - данного равенства не будет |
Часовой пояс GMT +3, время: 08:31. |