【问题标题】:javascript php get value from a dynamically added textboxjavascript php从动态添加的文本框中获取值
【发布时间】:2009-09-07 18:43:59
【问题描述】:

我正在使用它来动态生成一个文本框:`

<html>
<head>
<title>Dynamic Form</title>
<script type="text/javascript" >
function CreateTextbox()
{
var i = 6;
createTextbox.innerHTML = createTextbox.innerHTML +"<input type=text name='flow'+ i/>"
i++;
}
</script>
</head>
<body>

<form name="form" action="post" method="">
<input type="button" value="clickHere" onClick="CreateTextbox()">
<div id="createTextbox"></div>
</form>
</body>

如何从添加的文本框中获取值?

我正在使用 javascript 和 php。

【问题讨论】:

标签: php javascript textbox


【解决方案1】:

将生成的 ID 添加到文本框并使用此 ID 检索输入

function CreateTextbox()
{
  var i = 6;
  createTextbox.innerHTML = createTextbox.innerHTML +"<input type=text name='flow'+ i id='box'+i/>"
  i++;
}

function getBox(var id){
  return document.getElementById("box"+i);
}

【讨论】:

  • 给你。这有意义吗?
【解决方案2】:

set name="flow[]" 这样您就可以使用 $_POST['flow'] 将所有值作为数组获取

【讨论】:

    【解决方案3】:

    createTextbox.innerHTML = createTextbox.innerHTML +""

    您的引号放错了位置,'+i' 实际上是文字字符串的一部分!你的意思是:

    '<input type="text" name="flow'+i+'" />'
    

    (还为 type 属性添加了引号:如果您要使用 XHTML 语法,不妨正确地使用它。)

    然后,您将获得发送到脚本的表单控件名称,例如“flow6”。 PHP 用户更常用的方法是使用数组,您可以通过在名称中加上方括号来说服 PHP 这样做:

    '<input type="text" name="flow['+i+']" />'
    

    您似乎还缺少一个:

    var createTextbox= document.getElementById('createTextbox');
    

    不要依赖 IE 将命名元素转换为全局变量的错误行为;它不会在其他地方工作。

    无论如何,避免附加到innerHTML。每次执行此操作时,createTextbox 中的所有内容都会费力地序列化为一串 HTML,然后您更改字符串并将其写回,将其全部解析回对象。在此过程中,您会丢失任何无法序列化为 HTML 的内容,例如 JavaScript 引用和事件绑定。

    如果您可以对 innerHTML 进行一次写入,或者使用 DOM 方法来创建您的元素,那通常会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2019-11-08
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多