0

我正在一个页面上显示不同的输入字段,具体取决于用户所做的选择。

示例 1:

<input type="text" name="color" value="" id="5">
<input type="text" name="location" value="" id="6">
<input type="text" name="age" value="" id="7">

示例 2:

<input type="text" name="color" value="" id="5">
<input type="text" name="destination" value="" id="8">
<input type="text" name="hours" value="" id="9">
<input type="text" name="date" value="" id="10">

问题 1: 当输入字段本身是动态的时,如何使用 jQuery 获取所有输入字段?

问题 2: 在服务器端,我想用它们的值和 ID 处理输入字段。我怎样才能使这个动态?

我知道当一切都修复时,这可以很容易地完成,例如:

var color =  $('#color').val();
var destination = $("#destination").val();

var dataString = 'color=' + color + "&destination=" + destination;
$.ajax({  
       type: "GET",  
       url: "do_something.php",  
       data: dataString,  
       async: false,
       success: function(data){
          console.log('success');
       }
});
4

2 回答 2

2

您可以使用.serialize()创建数据字符串。它将动态获取表单的所有数据并将其转换为字符串,就像您尝试构建的那样:

$.ajax({  
       type: "GET",  
       url: "do_something.php",  
       data: $("form").serialize(),  
       async: false,
       success: function(data){
          console.log('success');
       }
});

文档.serialize()http ://api.jquery.com/serialize

$("form")请注意,如果 DOM 中有多个表单,则可能需要将选择细化为更具体。

至于您的第二个问题,您通常应该将关于 SO 的问题保留为每个帖子一个问题。话虽如此,您应该将ID属性设置为属性value,这样在提交表单时它将被传递给 PHP 脚本,ID因为它没有与表单一起传输,所以会丢失。

于 2013-09-24T17:49:28.507 回答
0

如果我理解你的第一个问题是你想用 jquery 获取动态输入的值和 id。哟可以做到这一点,始终在同一个 div 中插入动态输入,只需执行以下操作:

var data = new Array();
$("#id-div input").each(function() {
    data.push({id: $(this).attr("id"), value: $(this).attr("value")});
});
于 2013-09-24T17:54:39.727 回答