2009-08-09 7 views
1

У меня есть веб-страница. Существует кнопка с именем add. Когда эта кнопка добавления нажата, необходимо добавить 1 текстовое поле. Это должно происходить только на стороне клиента. Я хочу разрешить пользователю добавлять не более 10 текстовых полей.Добавление нового текстового поля с помощью javascript

Как я могу достичь этого с помощью javascript?

пример: отображаются

  • только 1 текстовое поле
  • пользователя нажмите кнопку Добавить>
  • 2 текстовых поля отображаются
  • пользователь щелкает добавить>

Я также хочу, чтобы обеспечить кнопку «удалить», с помощью которой пользователь может удалить дополнительное текстовое поле

Может ли кто-нибудь предоставить мне код javascript для этого?

+3

Вы используете jquery или какой-либо другой фреймворк javascript? – opHASnoNAME

+0

Что вы подразумеваете под текстовым полем, вы имеете в виду asp.net textbox control? –

+2

@Amr - OP заявляет клиентов. Как это означает текстовое поле asp.net? – redsquare

ответ

1

Untested, но это должно работать (при условии существования элемента с правильным идентификатором);

var add_input = function() { 

    var count = 0; 

    return function add_input() { 
     count++; 
     if (count >= 10) { 
      return false; 
     } 
     var input = document.createElement('input'); 
     input.name = 'generated_input'; 
     document.getElementbyId('inputs_contained').appendChild(input); 
    } 

}(); 

add_input(); 
add_input(); 
add_input(); 
+0

can u pleas giv код детали вдоль wit html.I не знаком с javascript – user93796

1

Раствор с помощью jQuery рамки:

<form> 
<ul class="addedfields"> 
<li><input type="text" name="field[]" class="textbox" /> 
<input type="button" class="removebutton" value="remove"/></li> 
</ul> 
<input type="button" class="addbutton" value="add"/> 
</form> 

JQuery код сценария:

$(function(){ 
    $(".addbutton").click(){ 
    if(".addedfields").length < 10){ 
     $(".addedfields").append(
     '<li><input type="text" name="field[]" class="textbox" />' + 
     '<input type="button" class="removebutton" value="remove"/></li>' 
     ); 
    } 
    } 

    // live event will automatically be attached to every new remove button 
    $(".removebutton").live("click",function(){ 
    $(this).parent().remove(); 
    }); 
}); 

Примечание: Я не проверял код.

Edit: изменен неисправные кавычки

+0

OP запросил javascript. Не решение jQuery. Посмотрите на теги в следующий раз для получения этой информации! – redsquare

+1

Насколько мне не нравится распространенность «Использовать jQuery!» как ответ за все, что JS связано с stackoverflow - jQuery * есть * JavaScript. – Quentin

1

Я надеюсь, что вы используете JQuery.

<script src="jquery.js" type="text/javascript"></script> 
<script type="text/javascript"><!-- 


    $(document).ready(function(){ 

    var counter = 2; 
    $("#add").click(function() { 
    if(counter==11){ 
     alert("Too many boxes"); 
     return false; 
    } 
     $("#textBoxes").html($("#textBoxes").html() + "<div id='d"+counter+"' ><label for='t2'> Textbox "+counter+"</label><input type='textbox' id='t"+counter+"' > </div>\n"); 
     ++counter; 
    }); 

    $("#remove").click(function() { 
    if(counter==1){ 
     alert("Can u see any boxes"); 
     return false; 
    } 
     --counter; 
     $("#d"+counter).remove(); 
    }); 
    }); 
// --></script> 
</head><body> 

<div id='textBoxes'> 
<div id='d1' ><label for="t1"> Textbox 1</label><input type='textbox' id='t1' ></div> 
</div> 
<input type='button' value='add' id='add'> 
<input type='button' value='remove' id='remove'> 
Смежные вопросы