正如标题所说。
我有一个包含大约100个输入字段的简单表单,我相信应该有一种替代的“快捷方式”方法来简单地输入所有100个字段。
有没有办法使用PHP或Javscript生成此大小的表单?
编辑:对不起伙计们。让我更清楚一点。我有一个关于将10页长的调查转换为Web表单的项目。结果,我最终得到一个包含大约100个输入字段的表单。我希望通过使用jQuery,php或javascript来使它们全部“必需”,而不用改变所有元素(将“required”放入所有标签中)。希望这清楚一些疑问。编辑2:我使用jotform生成此表单。所以我已经掌握了表格。所以我不会问如何生成,但如何改变这一点。感谢。
答案 0 :(得分:1)
您可以分为两部分:客户端和服务器端。
纯粹使UI更易于使用,因为所有数据也必须在服务器上进行验证。但是,使UI更易于使用非常重要。
以下是您执行此操作的方法:
您挂钩了表单的submit
事件。
您遍历表单的元素(表单上的elements
collection)并检查它们是否为空value
(input type="text"
和textarea
)或者,对于单选按钮,至少有一个共享相同name
的{{1}}属性为checked
。 (你还说你有一组复选框,你至少需要检查一个,所以这类似于单选按钮的东西,虽然你必须以不同的方式对它们进行分组,也许使用相同的CSS类,这是每个true
上提供input
。)
如果您有任何感觉不充分的字段,则从className
的事件处理程序返回false
。理想情况下,您还会向用户显示有关缺少内容的非常明确的说明。
大约有一万五千个“表单验证”插件可以帮助您解决此问题。 HTML5现在也通过标记进行了一些表单验证,但是支持还不是你可以依赖的级别。
收到表单后,您必须重新验证是否存在所有必需信息,因为可以规避客户端验证。当然,您如何执行此操作取决于表单的内容,但变量将通过submit
(如果您的表单为$_POST
)或method="POST"
(如果它是$_GET
)提供。如果表单涉及更改任何内容,那么您自然会使用method="GET"
。
答案 1 :(得分:0)
这是在HTML5的帮助下完成的。尝试:
<input type="text" required="required" name="name" maxlength="5/>
<textarea required="required ... ></textarea>
等...
然后,您必须在提交表单后使用PHP检查字段是否为空:
if(empty($_POST['name']))
$messages[] = 'Please provide a name';
因此强制用户放置数据是HTML和PHP代码的组合。你也可以使用JavaScript,eq。用于警告字段是否仍为空并且用户正在尝试提交表单。
编辑:
我看到你编辑了帖子。你需要编写自己的控件,它可以生成输入,textareas,选择......例如:
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代码......