【问题标题】:HTML forms, add area on clickHTML 表单,点击添加区域
【发布时间】:2012-01-03 18:58:41
【问题描述】:

我不知道如何询问我在寻找什么来搜索操作方法。我正在构建一个表格,其中一个条目要求用户列出设备、其电压、瓦特、安培、相位等。

我想要一个简单的行,其中包含“X”列,为一个设备提供文本区域,然后能够使用 jquery/html 单击链接以“添加另一个设备”。

我喜欢使用占位符文本来节省页面空间。对于像“名称”这样的单个条目,我可以很好地完成所有这些设置,但是我不知道如何实现“添加条目”行。所有数据都通过 PHP 存储在 MySQL 中。

所以 A:这种类型的表单部分的名称是什么。 B:当我们想让用户在这个部分添加一行时,它叫什么?

我喜欢让事情变得比实际更难。这是我的专长。我猜:)

编辑:http://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_submit 使用这种格式,每个条目有 5 列(尽管它们都在一行/行)我想要一个“添加条目”链接,它会生成一个新的空白条目选项。

#elecNeeds input[type=text], textarea {
font-size: 12px;
font-style: italic; 
width: 15%;
height: 20px;
padding: 10px;  
color: #212323;
background: #E3E3E3;  
background: rgba(255, 255, 255, 0.5);
border: 2px #000 solid;
margin-bottom: 10px;
position: relative;
behavior: url(/js/PIE.htc);

    }

    <div id="elecNeeds">
    <input type="text" name="appliance" placeholder="Type of Equipment">
    <input type="text" name="voltage" placeholder="Voltage">
    <input type="text" name="watts" placeholder="Watts">
    <input type="text" name="amps" placeholder="Phase">
    <input type="text" name="notes" placeholder="Notes">
    <br />  Add an appliance
    </div>

【问题讨论】:

  • 您能否展示您的示例代码,以便我们查看您希望的格式?
  • 目前我只是在设置 html:""
  • 我的意思是你的整个表单就像所有的 html 一样,请编辑你的原始问题并将它放在那里。(几乎向我们展示了你到目前为止得到了什么)
  • 格式只是一行,接受大约 5 列的文本条目以供具体说明。

标签: php jquery html forms add


【解决方案1】:

我不知道它叫什么,但你可能想要这个 - http://jsfiddle.net/uPWkf/1/

<form method="post" action="#" id="myForm">
    <div id="nameFields">
        <label>Watt <input type="text" name="watt0" /></label>
        <label>Volt <input type="text" name="volt0" /></label>
        <label>Amp <input type="text" name="amp0" /></label><br/><br />
    </div>
    <input type="submit" value="submit" id="submit" />
</form>
<a href="#" onclick="return false;" id="addRow">Add New Row</a>

和 JS

var i = 1;

$("#addRow").click(function() {
    $("#nameFields").append('<label>Watt <input type="text" name="watt' + i + '" /></label><label>Volt <input type="text" name="volt' + i + '" /></label><label>Amp <input type="text" name="amp' + i + '" /></label><br/><br />');

    i++;
});


$('#myForm').submit(function() {
    var values = $('#myForm').serialize();
    alert(values);
});

【讨论】:

  • 嗨 Zoltan-您编辑了您的代码-我现在正在使用原始代码,到目前为止它似乎正在完成这项工作...您为什么要编辑?谢谢!
  • 我已经改变了添加字段名称的生成方式,因此每个输入都有唯一的名称。并添加了一个警报以显示发送的数据的样子
  • 知道为什么原始字段之间的间距与其他字段不同吗?一样的css? jsfiddle.net/Commandrea/MgJRd/1
  • 删除 &lt;label&gt;-s 并在输入之间放置一个空格 - jsfiddle.net/MgJRd/6 :)
  • 尝试在添加的行中单击 Amps/Phase/Note由 Zoltan 更新修复错误
【解决方案2】:

我认为您需要使用$(selector).append('&lt;code&gt;'); 功能。例如:

<a href="#" class="add">Add</a>
<table class="my_fuits">
    <tr>
        <td>Fruit</td>
        <td><input type="text" name="fuits[]" /></td>
    </tr>
</table>

和js(jQuery)代码:

$(document).ready(function(){

    // add one more row
    $(".add").live('click',function(){
        $(".my_fuits").append('<tr><td>Fruit '+$(".my_fruits input").length+'</td><td><input type="text" name="fuits[]" />[<a href="#" class="remove">X</a>]</td></tr>');
        return false;
    });

    //  remove row
    $(".remove").live('click',function(){
            $(this).parent().parent().remove();
            return false;
    });
});

【讨论】:

  • 我实际上更喜欢这个,除了你忘记将.remove 类添加到你的链接X,我编辑了计数,因为它不起作用。现在它很完美:jsfiddle.net/U5XkP/1(你应该更新你的代码),但无论如何,这一切都归功于你,我更喜欢你的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 2010-10-22
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多