字体:  

动态增加框咋就这么难呢

hnchina 发表于: 2008-8-28 13:47 来源: PHPChina 开源社区门户

以下代码是实现动态文本增加到,即:用户可以根据自己需要增加多少行都可以

目前代码本身可以实现动态增加,但是需要增加两个小功能:---5555搞了两天没搞好。

一是在每增加一行文本框中增加一个日历控件,红色代码请看。

二是在每增加一行文本框中加上表格


又找了一个代码,还是同样的问题,不能在动态的文本框后把日历控件给加上


<html>
<head>
<title>动态增加文本框 </title>
  <link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />

  
  <script type="text/javascript" src="js/calendar.js"> </script>

  
  <script type="text/javascript" src="js/calendar-zh.js"> </script>

  <script type="text/javascript" src="js/calendar-setup.js"> </script>
  
<script type="text/javascript">
<!--
var textNumber = 1;
function addTextBox(form, afterElement) {
  // Increment the textbox number
  textNumber++;
  // Create the label
  var label = document.createElement("label");
  // Create the textbox
  var textField = document.createElement("input");
  textField.setAttribute("type","text");
  textField.setAttribute("name","tt[]"+textNumber);
  textField.setAttribute("id","tt"+textNumber);
    var textField1 = document.createElement("input");
  textField1.setAttribute("type","text");
  textField1.setAttribute("name","aa[]"+textNumber);

textField1.setAttribute("id","aa"+textNumber); 这行代码是否能改成以下这样?????语法有没有问题????现在报错,动态框不能增加了,当然也无从看到动态框的日历控件

textField1.setAttribute("id","begin_date_b"+textNumber) <input type="reset" value="...">;


    var textField2 = document.createElement("input");
  textField2.setAttribute("type","text");
  textField2.setAttribute("name","bb[]"+textNumber);
  textField2.setAttribute("id","bb"+textNumber);
  // Add the label's text
  label.appendChild(document.createTextNode("提醒"+textNumber+": "));
  // Put the textbox inside
  label.appendChild(textField);
  label.appendChild(textField1);
  label.appendChild(textField2);
  // Add it all to the form
  form.insertBefore(label,afterElement);
  return false;
}
function removeTextBox(form) {
  if (textNumber > 1) { // If there's more than one text box
    // Remove the last one added
    form.removeChild(document.getElementById("tt"+textNumber).parentNode);
    textNumber--;
  }
}
//-->
</script>
<style type="text/css">
<!--
label {
  display:block;
  margin:.25em 0em;
}
-->
</style>
</head>
<body>

<form  method="POST" action="bb6cc.php">
  <table  border="1"  id="test" cellpadding="1" cellspacing="1">   
  
  
  <label>提醒1: <input type="text" name="tt[]" id="tt" />
  <input type="text" name="aa[]" id="begin_date_b"> <input type="reset" value="...">
  <input type="text" name="bb[]" id="bb" /> </label>
  <p>
    <input type="button" value="增加一行" />
    <input type="button" value="删除一行" />
  </table>
  <p> <input type="Submit" value="提交保存" /> </p>
</form>
</body>
</html>

最新回复

hnchina at 2008-8-28 17:04:38
自己顶
yanyugang at 2008-8-29 14:46:43
hnchina at 2008-8-29 16:21:09
flyfly99 at 2008-8-29 17:07:01
非常简单的事情,你自己搞怎么复杂
hnchina at 2008-8-29 17:26:42
<html>
<head>
<title>动态增加文本框 </title>
  <link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />

  
  <script type="text/javascript" src="js/calendar.js"> </script>

  
  <script type="text/javascript" src="js/calendar-zh.js"> </script>

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

  var textNumber = 1;
  function addTitle(rows){
    return "提醒" + (rows+1) + ":";
  }
  function addaa(rows){
    //return rows;
    return " <input type=\"+text\" name=\"aa[]" + rows + "\" id=\"begin_date_b" + rows + "\" />" + " <input type=\"reset\" value=\"...\" onclick=\"return showCalendar('begin_date_b" + rows + "', 'y-m-d');\">";
  }
  function addbb(rows){
    //return rows
    return " <input type=\"+text\" name=\"bb[]" + rows + "\" id=\"bb" + rows + "\" />";
  }
  function addtt(rows){
    //return rows;
    return " <input type=\"+text\" name=\"tt[]" + rows + "\" id=\"tt" + rows + "\" />";
  }

  
  function addTextBox(worksId){
  var works = document.getElementById(worksId);
  var newRow = works.insertRow(-1);
  
  var newCell = newRow.insertCell(0);
  newCell.innerHTML = addTitle(textNumber);
  newCell = newRow.insertCell(1);
  newCell.innerHTML = addtt(textNumber);
  newCell = newRow.insertCell(2);
  newCell.innerHTML = addaa(textNumber);
  newCell = newRow.insertCell(3);
  newCell.innerHTML = addbb(textNumber);
  textNumber++;
  
  }
  
  function removeTextBox(worksId){
  var works = document.getElementById(worksId);
  if(textNumber>1){
    works.deleteRow(textNumber-2);
    textNumber--;
  }
  }
//-->
</script>
<style type="text/css">
<!--
label {
  display:block;
  margin:.25em 0em;
}
-->
</style>
</head>
<body>

<form  method="POST" action="bb6cc.php">
  <table  border="1"  id="works" cellpadding="0" cellspacing="0">   
  <tr align="center"> <td> </td> <td>提醒内容 </td> <td>提醒时间 </td> <td>提醒邮件 </td> </tr>
  
<tr> <td>提醒1: </td> <td> <input type="text" name="tt[]" id="tt" /> </td>
  <td> <input type="text" name="aa[]" id="begin_date_b"> <input type="reset" value="..." onclick="return showCalendar('begin_date_b', 'y-m-d');"> </td>
  <td> <input type="text" name="bb[]" id="bb" /> </td> </label>
  </tr>
  </table>
  <p>
    <input type="button" value="增加一行" onclick="addTextBox('works')" />
    <input type="button" value="删除一行" onclick="removeTextBox('works')" />
  <p> <input type="Submit" value="提交保存" /> </p>
</form>
</body>
</html>
flyfly99 at 2008-8-29 18:13:30
这样写代码不难受啊