2013-06-24 5 views
0

Я создаю форму HTML, в которой я хотел бы отображать столько полей ввода для текста, сколько они выбирают с помощью ввода номера. Я буду иметь это:Oninput display HTML code (условный)

<input type="number" name="syggrafei" oninput="showfield(this.options[this.selectedIndex].value)" /><div id="div1"></div> 

и Javascript:

<script> 
function showfield(value) { 
    if (value == '1') { 
     document.getElementById('div1').innerHTML = '<input type="text" name="syggrafea1" placeholder="S????af?a? 1" />'; 
    } 
    else if (value == '2') { 
     document.getElementById('div1').innerHTML = '<input type="text" name="syggrafea1" placeholder="S????af?a? 1" /><br /><input type="text" name="syggrafea2" placeholder="S????af?a? 2"/>'; 
    } else { 
     document.getElementById('div1').innerHTML = ''; 
    } 
} 

Я довольно новыми для Javacript. Может ли кто-нибудь помочь мне написать его правильно?

+0

Где 'value' была определена? – Teemu

+1

Я думаю, что вы имели в виду 'function showfield (value)' вместо 'function showfield (name)' – PSL

+0

Спасибо. Да, это функция showfield (значение). – user2516494

ответ

0

Сначала я думаю, что было бы лучше, если вы используете «ONBLUR» вместо «oninput», потому что, когда пользователь заканчивает его изменение будет выполнять функцию.

тогда, вы можете использовать «Для», чтобы сделать то, что вы хотите. как это, смотрите:

<input id="myInput" onblur="showfield($(this).value)" /> 

Вот код Javascript:

function showfield(value){ 
var data = ''; 
for (i = 0 ; i < value ; i++) 
{ 
data += '<input type="text" name="syggrafea'+i+'" placeholder="Συγγραφέας '+i+'" />'; 
} 
document.getElementById('div1').innerHTML=data; 
} 

:)

+0

Спасибо вам большое! Гораздо лучше, чем мой подход. – user2516494

0

type=number не имеет параметров, поэтому ваш oninput не будет работать. Вы просто хотите использовать

showfield(this.value)