-3

正如标题所说。

我有一个包含大约 100 个输入字段的简单表单,我相信应该有一种替代的“快捷方式”方法来简单地输入所有 100 个字段。

有没有办法使用 PHP 或 Javscript 生成这种大小的表单?

编辑:对不起,伙计们。让我更清楚一点。我有一个关于将 10 页长的调查转换为 Web 表单的项目。结果,我最终得到了一个包含大约 100 个输入字段的表单。我希望通过使用 jQuery、php 或 javascript 使它们全部成为“必需”,而无需将所有元素更改为一个(将“必需”放入所有标签中)。希望这能消除一些疑虑。

编辑 2:我使用 jotform 生成此表单。所以我手头已经有了表格。所以我不是在问如何生成,而是如何改变它。谢谢。

4

2 回答 2

1

您分两部分执行此操作:客户端和服务器端。

客户端

纯粹是为了让 UI 更易于使用,因为所有数据也必须在服务器上进行验证。但让 UI 更易于使用很重要。

下面是你如何做到这一点:

  1. 你钩住submit表单的事件。

  2. 您遍历表单的元素(表单上的elements集合)并检查它们是否具有非空白value(for input type="text"and textarea),或者在单选按钮的情况下,至少有一个共享相同的元素name具有checked属性true. (您还说过您有一组复选框,您至少需要检查一个复选框,因此这类似于单选按钮的内容,尽管您必须对它们进行不同的分组,可能使用相同的 CSS 类,即每个都可用inputclassName

  3. 如果您觉得有任何字段没有被充分填写,您可以false从事件处理程序中返回submit. 理想情况下,您还可以向用户非常清楚地说明缺少的内容。

大约有 15,000 个“表单验证”插件可以帮助您解决这个问题。HTML5 现在还通过标记进行了一些表单验证,但支持还没有达到您可以依赖的水平。

服务器端

当您收到表单时,您必须重新验证是否存在所有必需的信息,因为可以绕过客户端验证。当然,您如何执行此操作取决于表单的内容,但变量将通过$_POST(如果您的表单是method="POST")或$_GET(如果它是method="GET")提供。如果表单将涉及更改任何内容,那么您自然会使用POST它。

于 2013-05-29T08:52:15.887 回答
0

目前,这是在 HTML5 的帮助下完成的。尝试:

<input type="text" required="required" name="name" maxlength="5/>
<textarea required="required ... ></textarea>

ETC...

然后您必须在提交表单后使用 PHP 检查字段是否真的为空:

if(empty($_POST['name']))
    $messages[] = 'Please provide a name';

所以强制用户放数据是 HTML 和 PHP 代码的结合。您还可以使用 JavaScript 等。用于提醒字段是否仍然为空并且用户正在尝试提交表单。

编辑:

我看到你已经编辑了帖子。您需要编写自己的控件,该控件可以生成输入、文本区域、选择...例如:

public static function addControl($type, $name, $options, $required = false, $howMuch = 1) 
{
    if($required)
        $required = 'required="required"';

    $name = 'name="'.$name.'"';

    $control = '';
    $controls = '';

    switch($type)
    {
        case 'input':
            $options = 'value="'.$options.'";
            $control = '<input type="text" '.$name.' '.$required.' '.$options.' />
        break;
        case ...:
    }
    if($howMuch > 1)
    {
        for($i = 1; $i < $howMuch; ++$i)
        {
            $controls .= $control;
        }
    }
    else 
    {
        $controls = $control;
    }

self::$controls[] = $controls;
}

在显示所有组合 html 代码的脚本方法的末尾...

于 2013-05-29T08:52:21.390 回答