2014-09-30 72 views
1

我有一个用户输入的值。如何为用户创建一定数量的表单项来填充,无论是javascript/jQuery还是PHP?根据用户输入创建多个表单项目

例如,

<select id = "Fooinput" name = "Foo"> 
    <option value = "0">0</option> 
    <option value = "1">1</option> 
    <option value = "2">2</option> 
    <option value = "3">3</option> 
    <option value = "4">4</option> 
</select> 
<button id ="fooclick">Button</button> 
<div id="fillout"></div> 

和jQuery的是这样的

$(document).ready(function(){ 
    var inputnum = $("Fooinput").val(); 
    $("#foobutton").click(function(){ 
     for (var i=0; i<inputnum;i++){ 
      $("#fillout").append('<select id="uniqueid">OPTIONS</select>'); 
     } 
    }); 
}); 

我很高兴地看到,在任何的jQuery或PHP的解决方案,我只是不明白我怎么可以在以后通过给所有检索值选择框中有一个唯一的ID。

+0

你真的给他们*唯一* ID,或者你给他们所有*相同*“唯一”ID?如果后者那么你创建了无效的标记,所以在这一点上的任何行为都是未定义的。如果这些ID确实是唯一的,那么您可以像其他任何表单元素一样引用表单元素:'$('#uniqueid')您能详细说明问题是什么以及哪些不起作用? – David 2014-09-30 13:23:10

+0

@David,OP似乎知道这些ID必须是唯一的。问题的症结在于如何在动态创建元素时使其具有独特性。 – 2014-09-30 13:24:36

+0

我希望他们都有唯一的ID号。我明白这不是这个代码的作用。我要求提供类似的代码,以使这些框具有唯一ID – 2014-09-30 13:24:40

回答

1

给唯一的ID inputnum环路

$("#fillout").append('<select id="uniqueid'+inputnum+'" class="Dropdown">OPTIONS</select>'); 

所以ID将是独一无二的像uniqueid0uniqueid1

然后你就可以访问它,使用独特的ID,请使用事件一样

$(".Dropdown").click(function(){ 
    $(this).attr(id); 
}); 

检查使用检查元素,Fiddle,你得到唯一的ID,在这种情况下,我硬编码1但是在你的代码中会循环同样的值。

+0

好,太好了,谢谢。这可能是一个愚蠢的问题,但是一旦我完成了这一步,如果我想将创建的下拉框中的所有值添加到会话数组中,是否可以使用某种foreach循环? – 2014-09-30 13:27:52

+0

不应该关闭双引号(在'id'属性)_after_追加计数器值吗? – 2014-09-30 13:28:37

+0

@PatrickQ谢谢 – 2014-09-30 13:31:30

1

此代码将这样的伎俩

注意:让我感动的单击事件内的var inputnum = $("Fooinput").val();因为OP你会得到在页面加载值不上点击。

$(document).ready(function(){ 

    $("#foobutton").click(function(){ 
     var inputnum = $("Fooinput").val(); 
     for (var i=0; i<inputnum;i++){ 
      $("#fillout").append('<select id="uniqueid-'+$i+'">OPTIONS</select>'); 
     } 
    }); 
}); 
相关问题