【问题标题】:Form validation with a large set of input box带有大量输入框的表单验证
【发布时间】:2016-03-29 07:53:17
【问题描述】:

有一组输入框,例如:

<input type="text" class="form-control my-input" name="q1" size="63" value="<?= set_value("q1"); ?>">
<input type="text" class="form-control my-input" name="q2" size="63" value="<?= set_value("q2"); ?>">
....
<input type="text" class="form-control my-input" name="q100" size="63" value="<?= set_value("q30"); ?>">

有30个输入框,从q1到q30

如果我想验证它们,我需要设置

$this->form_validation->set_rules('q1', lang("q1"), 'required');

30 次,如果没有什么重要的,验证错误信息将显示 30 次。

因此,我想:

  1. 假设q15不是必需的,循环遍历post数组,检查其他输入框是输入还是空。

  2. 如果没有输入任何一个必需的输入框,则只显示一条错误消息

如何在codeigniter中实现这一点?

【问题讨论】:

  • 使用任意循环并迭代到 30
  • 非常感谢。名称不符合模式的情况如何处理,如果任何一个输入框验证失败,如何只显示一条错误消息?

标签: javascript php jquery codeigniter validation


【解决方案1】:

这里是代码示例

for($i = 1; $i <= 30; $i++){
  $this->form_validation->set_rules('q' + $i, lang('q' + $i), 'required');
}

更新 当名称不符合模式时:

$names = [1=>'q1', 'a1', 'd3', ...];

for($i = 1; $i <= 30; $i++){
  $this->form_validation->set_rules($names[$i], lang($names[$i]), 'required');
}

【讨论】:

  • 非常感谢,如果没有输入任何一个必需的输入框,如何只显示一条错误消息?
  • 为名字创建一个数组,并使用这个数组来设置名字;查看更新;
  • 所需的错误会显示多次,是否有任何建议只显示一个自定义错误消息。例如。 “请把空白处全部填写” 。感谢您的回复
  • 我可以简单地忽略键/只是循环后输入数组并从数组中获取给定的键
  • 您想根据提交的字段设置验证规则吗?
猜你喜欢
  • 1970-01-01
  • 2017-04-09
  • 2015-10-22
  • 2018-05-12
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
相关资源
最近更新 更多