2016-08-16 45 views
1

我写了一些HTML和Javascript来创建一个表,输入字段出现。这是HTML Table的图片。当用户保持点击按钮来添加更多的它看起来像这样:HTML Table More Input动态创建的输入,然后从输入获取数据与烧瓶

下面是表的HTML代码和JavaScript来创建更多的投入:

<form action="/information.html" method="POST"> 
    <table class="table table-borderless"> 
     <thead> 
      <tr> 
       <th style="text-align:center">Ticker</th> 
       <th style="text-align:center">Shares</th> 
      </tr> 
     </thead> 
     <tbody id='room_fileds'> 
      <tr> 
       <td style="text-align:center"> 
        <fieldset class="form-group"> 
         <input type="text" placeholder="AAPL" name="stock1"/> 
        </fieldset> 
       </td> 
       <td style="text-align:center"> 
        <fieldset class="form-group"> 
         <input type="text" placeholder="100" name="weight1"/> 
        </fieldset> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</form> 
<br/> 
<input type="button" id="more_fields" onclick="add_fields();" value="Add More" /> 
<input type='submit' value='Submit'/> 

<script> 
var count = 0 
function add_fields() { 
count++ 
var county = count.toString(); 
var objTo = document.getElementById('room_fileds') 
var divtest = document.createElement("tr"); 
divtest.innerHTML = '<td style="text-align:center"><input type="text"></td><td style="text-align:center"><input type="text"></td>'; 
objTo.appendChild(divtest) 
} 
</script> 

我试图用烧瓶获取所有后期输入。通常我有一个名称,如stock1,然后我做的有以下烧瓶输入:

stock1=request.form.get('stock1',type=str) 

不过,我不确定如何处理这种类型的动态创建的输入。我不确定用户是否会将数据输入到1或2甚至25个输入框中。如果不知道用户将输入多少数据,是否有合适的方式使用烧瓶来获取所有这些数据?可能的话,我想把所有的代码都放到一个列表中,并把所有的代码放到另一个列表中。

+0

您可以发布您的Python瓶的形式? – McBoman

+0

也许[这](http://stackoverflow.com/questions/32633051/get-multiple-values-from-one-html-input-through-python-flask)帮助。 – lrnzcig

+0

@Irnzcig所以如果我将每个输入的'tickers'命名,那么我可以做tickers = request.form.getlist('tickers')? –

回答

1

我注意到如果你想让所有动态创建的输入具有相同的名称,它们必须是与第一个不是动态创建的输入字段不同的名称。因此,我命名了第一个输入s0和其余动态创建的输入s1。然后,我可以调用s0上的request.form.get(),并可以调用s1上的request.form.getlist()。然后,我可以将s0附加到s1,并且我有我想要的列表,其中包含所有输入数据。但是,如果让动态创建的输入与第一个非动态创建的输入具有相同的名称,则它不起作用。

1

我对烧瓶不太了解,但是通过这段代码,您可以获得对象数组,并将它们逐个插入到您的服务器逻辑中。

https://jsfiddle.net/8gdun4j0/

PS:使用jQuery的

arrayObject=[]; 
$("#subButon").on("click",function(){ 
for(var index=0;index<count+1;index++){ 
arrayObject.push(
{stock:$("#stock"+index).val(), 
weight:$("#weight"+index).val()} 
) 
} 
console.log(arrayObject); 
alert("objetos guardados") 
}) 
相关问题