如何根据用户选择设置要显示的表单数量?

时间:2014-09-12 06:45:37

标签: javascript jquery html css

如果这个问题措辞不好,我道歉。我在这里问的原因是因为我不知道如何正确使用谷歌。

基本上,我希望客户端能够指定一个数字(他们可以在文本框中输入数字,或者在下拉框中可能有一系列数字,甚至是单选按钮,我非常灵活这确定了表格将显示多少组问题。

将其置于上下文中以使其更容易理解:

- 表单用于预订门票

- 如果客户在开始时选择“1”,则表示一张票,因此只能看到一组问题

- 如果客户选择2,那么他们想要预订2张门票等等。

如果需要,我正在寻找使用html,css和/或jquery / javascript实现此方法的方法。

非常感谢提前!

4 个答案:

答案 0 :(得分:0)

你可以使用sheepit插件 - sheepit for form cloning

通过它。它可以帮助你很多。

答案 1 :(得分:0)

当用户选择座位数时,为每个座位制作一个循环并根据需要重复提问。所有形式相同。

使用php

for ($question = 0 ; $question < $_POST['SeatNumbers'] ; $question ++) { ... }

然后你必须循环通过总问题集,我猜你可能会使用SeatNumber输入,在上面的代码中你将获得$ SeatNumber0,$ SeatNumber1等等。 检查$ SeatNumber是否存在,如果存在则进行处理。

使用JS,我定义了选项的最大数量。当用户更改座位号时,我用css显示/隐藏每个问题&#34;显示:无&#34; /&#34;显示:内联&#34;

答案 2 :(得分:0)

如果您想动态处理html内容,则需要使用Javascript。

您可以从文本字段或用于提供票数的选择器中听到事件。

尝试使用jQuery:

$('your_field_selector')。on('change')或此$('your_field_selector')。on('keyup')

如果事件被触发,您可以使用名为“val()”的jQuery方法获取字段的值:

$( 'your_field_selector')。VAL()

接下来,根据值插入新的html内容。

在这里,还有很多jQuery方法,比如“append()”,“insertBefore()”,“insertAfter()”......等等

答案 3 :(得分:0)

我认为这是你追求的事情。

表单中的部分数量是由滑块上选择的数字生成的,每个动态生成的表单元素具有唯一的ID,具体取决于它的票据,即:票证3的名称ID为name3票证14将具有名称ID为name14,以便通过服务器端邮件功能正确使用每个输入。

这是一个有效的jsfiddle http://jsfiddle.net/fd78gkf3/

请原谅通用表格字段名称:)

<script>function showValue(newValue)
{
    document.getElementById("tAmount").value = newValue;
    document.getElementById("tAmountDisplay").innerHTML = newValue;
}
</script>
<script>
$(document).on("click", '#select', function() { 
    var formTimes = document.getElementById("tAmount").value;
    $('#forms').append('<form id="ticketForm">');
    for(var i = 1; i < formTimes; i++) {

        $('#forms').append(i);
        $('#forms').append('<div id="formPanel">');
        $('#forms').append('<label>Name</label><input id="name' + i +'" type="text"/>'+'<br/>');
        $('#forms').append('<label>Age</label><input id="age' + i +'"type="text"/>'+'<br/>');
        $('#forms').append('<label>Gender</label><input id="gender' + i +'" type="text"/>'+'<br/>');
        $('#forms').append('</div>');
    } 
    $('#forms').append('<input type="button"  id="submit" value="Submit"/>'+'</form>')
}); 
</script>
<span id="tAmountDisplay">0</span> Tickets
<form action="" method="post">
    <input type="range" min="1" max="20" value="1" step="1" width="100px" oninput="showValue(this.value)" />
    <input type="hidden" id="tAmount"  name="tAmount" value=""/>
    <input type="button" id="select" value="Select" />
    <div id="forms">

    </div>
</form>