Javascript 动态表单字段

标签 javascript php jquery html

我在使用 JavaScript 时遇到困难,需要一些帮助。我有一个表单,它向 php 发送要填充的确切输入数量,现在我想使用 jQuery/javascript 创建预览,但如何动态捕获所有字段。

这是我的表格的一部分供引用:

<td>
    <div class="input-group">
        <span class="input-group-addon">
            <i class="fa fa-pencil"></i></span>
        <input class="form-control" id="task" type="text" name="task" placeholder="Task Title">
    </div>
</td>
<td>
    <div class="input-group">
        <span class="input-group-addon">
            <i class="fa fa-pencil"></i>
        </span>
        <input class="form-control"  id="description" type="text" name="description" placeholder="Task Description">
    </div>
</td>

所以,我在 PHP 中添加了名称字段 + 数字,这样我就可以获得不同的名称,即:task1task2,...等。

现在我需要做的是使用 jQuery/javascript 获取值。

到目前为止,我的想法是在 for() (循环)内声明 var (变量)

var task = $('input[name=task]').val();

如何获取所有值task1task2。没有人知道用户将提交多少个任务字段,所以我需要获取字段的数量

任何帮助指示,以便我能解决这个问题

最佳答案

首先,您不需要为输入字段提供名称,例如task1、task2等来在服务器端(即在PHP。您只需为它们提供一个名称属性值,例如 tasks[] 并注意括号 [],这样您可能会得到如下所示的内容:

<input class="form-control" id="tasks[]" type="text" name="tasks[]" placeholder="Task Title">
...
<input class="form-control" id="tasks[]" type="text" name="tasks[]" placeholder="Task Title">

这些字段中的值将自 Action 为数组发布到 PHP,并且将在 PHP 脚本中像以下那样接收:

$tasks = $_POST['tasks'];
foreach ($tasks as $task){
   echo $task;
} 

第二通过这种方式,您将能够轻松地使用 Javascript 收集输入数据,以便使用 getElementsByName 方法生成预览,如下所示:

function preview(){
      output = "";
      tasks = document.getElementsByName('tasks[]');
      for (i=0; i < tasks.length; i++){
        output += "<b>Title</b>: "+tasks[i].value+"<hr />";
      }
      panel = document.getElementById('panel');
      panel.innerHTML = output;
    }

当然,您可以将此解决方案扩展到表单中的任意数量的字段,例如descriptions[]

JavaScript 演示:http://jsbin.com/kiyisi/1/

关于Javascript 动态表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27388326/

相关文章:

javascript - 尝试使用 for 循环和 while 的琐事问题

javascript - NodeJS - 将 SQL 结果发送到 Google Sheets

javascript - HTML5、 'for' 循环和飞机的问题

php - 在相同的 css 类中显示相同页面的错误消息

php - 如何在 PHP 中获取字符串的十六进制转储?

javascript - 如何在页面重新加载后保持复选框选中状态?

javascript - 带 map 绘制的室内定位SDK

php - 博客发布 SQL 连接问题

javascript - 使用动态内容时调整 Div 的高度

jquery - 针对第 3 个子文章,然后在其中嵌套 DIV