javascript - 如何在列表中动态生成输入字段,然后从所述字段中检索文本?

标签 javascript ajax jquery

我正在填充输入字段列表,以允许用户输入多个位置。 (我找到了一种填充列表的方法,但我认为这可能不是正确的方法,因为我才刚刚开始,我想我最好学会正确地做它)。我这样填充列表:

function addLocationBox(){
    $('#InputBoxesList').append('<li><input type="text" /><input type="button" value ="Add Location"  onclick="addLocationBox();"/></li>')
}

当用户填写字段并稍后在页面中按下提交按钮时,我需要知道如何检索他们输入的文本。有什么建议么?我是 javascript 的新手,所以也欢迎任何其他指示:)。

最佳答案

您可以使用.each()在输入之间循环。

假设您想要使用 Ajax 和 JQuery POST 您的输入值。仅输入,而不是文本区域或选择,对于示例来说更容易。

首先,您需要文本输入和一个字符串变量来存储数据。 在此字符串中,我通常首先存储提交的。它在服务器端很有用。

var $inputs    = $("input").not("input[type=submit]"),
    submitval  = $("input[type=submit]").val(),
    datastring = "submit="+submitval;

然后使用 .each() 循环输入并在数据字符串中附加名称/值:

$inputs.each(function() {
  var $this = $(this),
      name  = $this.attr("name"),
      val   = $this.val();

      datastring += "&"+name+"="+val;    
});

您现在有了一个可以像这样 POST 的数据字符串,例如到 form.php :

$.ajax({
  type: "POST",
  data: datastring,
  url: "form.php",
  success: function(data) {
    // your success handler
  }, 
  error: function() {
    // your error handler
  }   
});

这不是剪切和粘贴解决方案,而是一种通用方法。

它不会处理文本区域、复选框、选择等。
它不会处理多种表单。
它在发布数据之前不会检查数据。

所以请谨慎使用。

关于javascript - 如何在列表中动态生成输入字段,然后从所述字段中检索文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823722/

相关文章:

Javascript 在某些情况下无法正确加载

javascript - 使用 TypeScript 和 Angular $http 服务进行跨域请求

javascript - 如果使用 sessionStorage 结束,如何保持动画的状态直到 session 结束?

php - 在ajax中传递JSON数据并在数据库查询中使用它

javascript - 如何访问在 php 标签内创建的文本框值以进行 ajax 调用

jquery - 使 div 在 Jquery getJson() 回调函数上可见

javascript - 图片库无法使用 document.getElementbyId() 正确显示

javascript - 在 for 循环中连接字符串 JavaScript 的最有效方法

javascript - 文本淡出/阅读更多链接

jquery - 拖放 - 如何将内容拖放到多个 "td"