Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как ограничить число динамических полей
 
 автор: Port_Artur   (14.03.2010 в 21:27)   письмо автору
 
 

Представленный ниже код позволяет добавлять и удалять динамически поле. Писал не я.
Как ограничить количество полей 5-ю, вне зависимости от того, сколько раз они добавлялись и удалялись. Возможно это просто доделать, возможно сложно. Не знаю
Прошу помочь, потому что в Java я полный ноль. Помогите пожалуйста!

<html> 
<head> 
<title>Динамическое добавление группы полей по желанию пользователя</title> 
<script language="JavaScript"> 
var items=1; 
function AddItem() { 
  div=document.getElementById("items"); 
  button=document.getElementById("add"); 
  items++; 
  newitem="<span id=\"a" + items; 
  newitem+="\"><strong>Описание </strong>"; 
  newitem+="<input type=\"text\" name=\"item" + items; 
  newitem+="\" size=\"35\"> <a href=\"#\" onclick=\"a('a"+ items; 
  newitem+="')\">удалить</a><br></span>"; 
  newnode=document.createElement("span"); 
  newnode.innerHTML=newitem; 
  div.insertBefore(newnode,button); 


function a(x){ 
r=document.getElementById(x); 
r.parentNode.removeChild(r); 
items=items-1; 


</script> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head> 
<body> 
<form name="form1"> 
<div ID="items"> 
<span id='a1'> 
<strong>Описание</strong> <input type="text" name="item1" size="35"> <a href="#" onclick="a('a1')">удалить</a><br> 
</span> 
<input type="button" value="Добавить" onClick="AddItem();" ID="add" class="b"> 
</div> 
</form> 

</body> 
</html>

  Ответить  
 
 автор: ddhvvn   (14.03.2010 в 21:58)   письмо автору
 
   для: Port_Artur   (14.03.2010 в 21:27)
 

Добавить 1 строчку [две]? )

<html>  
<head>  
<title>Динамическое добавление группы полей по желанию пользователя</title>  
<script language="JavaScript">  
var items=1;  
function AddItem() {  
  if (items >= 5)
    return;

  div=document.getElementById("items");  
  button=document.getElementById("add");  
  items++;  
  newitem="<span id=\"a" + items;  
  newitem+="\"><strong>Описание </strong>";  
  newitem+="<input type=\"text\" name=\"item" + items;  
  newitem+="\" size=\"35\"> <a href=\"#\" onclick=\"a('a"+ items;  
  newitem+="')\">удалить</a><br></span>";  
  newnode=document.createElement("span");  
  newnode.innerHTML=newitem;  
  div.insertBefore(newnode,button);  
}  

function a(x){  
r=document.getElementById(x);  
r.parentNode.removeChild(r);  
items=items-1;  
}  

</script>  

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>  
<body>  
<form name="form1">  
<div ID="items">  
<span id='a1'>  
<strong>Описание</strong> <input type="text" name="item1" size="35"> <a href="#" 

onclick="a('a1')">удалить</a><br> 
</span>  
<input type="button" value="Добавить" onClick="AddItem();" ID="add" class="b">  
</div>  
</form>  

</body>  
</html>

  Ответить  
 
 автор: Port_Artur   (14.03.2010 в 22:32)   письмо автору
 
   для: ddhvvn   (14.03.2010 в 21:58)
 

Спасибо Большое.

  Ответить  
 
 автор: Port_Artur   (16.03.2010 в 10:30)   письмо автору
 
   для: Port_Artur   (14.03.2010 в 22:32)
 

Почему выделенный текст не работает? - Добавляется текстовое поле, а должна добавиться кнопка.
Он должен добавить кнопку на экран если количество полей стало 4 и меньше. Кнопка удаляется с экрана если число полей для ввода стало равно 5 кодом:

 if (items == 5){
  b('add')
}


<html>    
<head>    
<title>Динамическое добавление группы полей по желанию пользователя</title>    
<script language="JavaScript">    
var items=1;    
function AddItem() {    
  if (items >= 5)  
    return;  
  div=document.getElementById("items");    
  button=document.getElementById("add");
  items++;    
  newitem="<span id=\"a" + items;    
  newitem+="\"><strong>Описание </strong>";    
  newitem+="<input type=\"text\" name=\"item" + items;    
  newitem+="\" size=\"35\">";

  newitem+="<a href=\"#\" onclick=\"a('a"+ items;    
  newitem+="')\">удалить</a><br></span>"; 
  
  newnode=document.createElement("span");    
  newnode.innerHTML=newitem;
  
    
 div.insertBefore(newnode,button);
  
 if (items == 5){
  b('add')
}
  
}    

function a(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r);    
items=items-1;

  if (items == 4){  
it="item"+items;
  div=document.getElementById("items"); 
span=document.getElementById(it);

  newbutton="<input type=\"button\" value=\"Добавить\" onClick=\"AddItem();\" ID=\"add\" class=\"b\">";  

  button=document.createElement("input");    
  button.innerHTML=newbutton;

 div.appendChild(button);}

  



function b(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r); }

</script>    


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>    
<body>    
<form name="form1">    
<div ID="items">    
<span id='a1'>    
<strong>Описание</strong> <input type="text" name="item1" size="35"><br>   
</span>    
<input type="button" value="Добавить" onClick="AddItem();" ID="add" class="b">    
</div>    
</form>    

</body>    
</html>

  Ответить  
 
 автор: Port_Artur   (16.03.2010 в 11:23)   письмо автору
 
   для: Port_Artur   (16.03.2010 в 10:30)
 

А так просто не добавляет кнопку, хотя вроде как должно:

function a(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r);    
items=items-1;

  if (items == 4){
it="item"+items;
document.getElementById("it").innerHTML += "<input type=\"button\" value=\"Добавить\" onClick=\"AddItem();\" ID=\"add\" class=\"b\">"; 
      }


  

  Ответить  
 
 автор: Port_Artur   (16.03.2010 в 11:48)   письмо автору
 
   для: Port_Artur   (16.03.2010 в 11:23)
 

Нашёл ошибку - отсутствовал идентификатор ID. Добавил где нужно. Но выделенный код по прежнему не работает и не добавляет кнопку.

<html>    
<head>    
<title>Динамическое добавление группы полей по желанию пользователя</title>    
<script language="JavaScript">    
var items=1;    
function AddItem() {    
  if (items >= 5)  
    return;  
  div=document.getElementById("items");    
  button=document.getElementById("add");
  items++;    
  newitem="<span id=\"a" + items;    
  newitem+="\"><strong>Описание </strong>";    
  newitem+="<input type=\"text\" id=\"item" + items;   
  newitem+="name=\"item" + items;    
  newitem+="\" size=\"35\">";

  newitem+="<a href=\"#\" onclick=\"a('a"+ items;    
  newitem+="')\">удалить</a><br></span>"; 
  
  newnode=document.createElement("span");    
  newnode.innerHTML=newitem;
  
    
 div.insertBefore(newnode,button);
  
 if (items == 5){
  b('add')
}
  
}    

function a(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r);    
items=items-1;

  if (items == 4){
it="item4";
document.getElementById("it").innerHTML += "<input type=\"button\" value=\"Добавить\" onClick=\"AddItem();\" ID=\"add\" class=\"b\">"; 
      }



  



function b(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r); }

</script>    


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>    
<body>    
<form name="form1">    
<div ID="items">    
<span id='a1'>    
<strong>Описание</strong> <input type="text" id="item1" name="item1" size="35"><br>   
</span>    
<input type="button" value="Добавить" onClick="AddItem();" ID="add" class="b">    
</div>    
</form>    

</body>    
</html>

  Ответить  
 
 автор: Port_Artur   (16.03.2010 в 13:02)   письмо автору
 
   для: Port_Artur   (16.03.2010 в 11:48)
 

Кнопка стала появлятся, но во-первых она не работает. Во-вторых если удаляю не последнее поле, а второе или первое - то оно появляется после того поля которое удалил, хотя кнопка по условию должна появиться только после 4 поля и 1 раз по условию.
Такое ощущение что переменная items как то неправильно работает. Или я не понимаю принцип.

<html>    
<head>    
<title>Динамическое добавление группы полей по желанию пользователя</title>    
<script language="JavaScript">    
var items=1;    
function AddItem() {    
  if (items >= 5)  
    return;  
  div=document.getElementById("items");    
  button=document.getElementById("add");
  items++;    
  newitem="<span id=\"a" + items;    
  newitem+="\"><strong>Описание </strong>";    
  newitem+="<input type=\"text\" ID=\"it" + items;   
  newitem+="name=\"item" + items;    
  newitem+="\" size=\"35\">";

  newitem+="<a href=\"#\" onclick=\"a('a"+ items;    
  newitem+="')\">удалить</a><br></span>"; 
  
  newnode=document.createElement("span");    
  newnode.innerHTML=newitem;
  
    
 div.insertBefore(newnode,button);
  
 if (items == 5){
  b('add')
}
  
}    

function a(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r);    
items=items-1;

  if (items == 4){

document.getElementById("a4").innerHTML += "<input type=\"button\" value=\"Добавить\" onClick=\"AddItem();\" ID=\"add\" class=\"b\">"; 
      }



  



function b(x){    
r=document.getElementById(x);    
r.parentNode.removeChild(r); }

</script>    


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>    
<body>    
<form name="form1">    
<div ID="items">    
<span id='a1'>    
<strong>Описание</strong> <input type="text" ID="it1" name="item1" size="35"><br>   
</span>    
<input type="button" value="Добавить" onClick="AddItem();" ID="add" class="b">    
</div>    
</form>    

</body>    
</html>

  Ответить  
 
 автор: Port_Artur   (16.03.2010 в 13:10)   письмо автору
 
   для: Port_Artur   (16.03.2010 в 13:02)
 

Ура, победил! Ну да, не сразу понял. Главное что разобрался!

if (items == 4){

document.getElementById("items").innerHTML += "<input type=\"button\" value=\"Добавить\" onClick=\"AddItem();\" ID=\"add\" class=\"b\">"; 
      }

  Ответить  
 
 автор: АЯ   (16.03.2010 в 13:14)   письмо автору
 
   для: Port_Artur   (16.03.2010 в 13:02)
 

--

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования