当前位置: 首页 > 知识库问答 >
问题:

Codeigniter自定义函数上的表单验证错误消息

黎奇思
2023-03-14

我在Codeigniter中为表单验证创建了一个自定义函数。它连接到URL帮助器,我通过制作MY_URL_帮助器实现了这一点。

助手修改:

function valid_url($str) {
   $pattern = "/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
   if (preg_match($pattern, $str)) return TRUE;
   else return FALSE;
}

/* End of file MY_url_helper.php */
/* Location: ./application/helpers/MY_url_helper.php */

我如何称呼验证:

美元这个-

语言文件:

$lang['valid_url']  = "The %s field must contain a valid URL.";

/* End of file form_validation_lang.php */
/* Location: ./system/language/english/form_validation_lang.php */

但是提交表单时不会显示任何错误信息。如果我将valid_url函数更改为true和false,它将执行该函数。所以它运行这个函数。

如何使错误消息出现?

共有1个答案

弘涛
2023-03-14

是否正在将验证错误打印到视图中?在视图中的表单上方添加此行,然后查看是否打印。

编辑:

根据你的回答,有几件事。。。我从来没有实际使用过“helper”函数作为验证的回调函数。。。我总是在进行验证的控制器中定义回调。其他人可能会详细说明您是否可以使用helper函数作为回调函数。您可能必须在控制器中声明验证函数。还可以从控制器中声明的回调返回helper函数,以避免在两个位置重新编写helper。这可能行得通。

我假设您正在加载'url'助手在您的控制器?

而且根据CodeIgniter的文档。。。我相信您应该在“set_rules”声明中的函数名开头追加“callback_”。

$this-

http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks

 类似资料:
  • 我创建了一个Django表单: 在模型中,定义为 如果用户为宽度输入0,则Django在表单验证时返回的错误消息为 确保该值大于或等于0.05。 因此,它很好地包含了来自的值。我想把它改为“相对宽度必须是” 为了实现这一点,我尝试在addFaceForm Meta中自定义错误 但这意味着要硬编码0.05的值。我想从模型定义中读一下。如何做到这一点?

  • 您好,我正在使用CodeIgniter构建RESTAPIhttps://github.com/chriskacerguis/codeigniter-restserver/blob/master/application/libraries/REST_Controller.php. 在_detect_api_key()函数中,他只检查给定的Api Key是否与表中存储的密钥匹配。我修改了一点这个方法,

  • 具有自定义验证的基本HTML5表单。如果提交的值不是数字,浏览器应显示错误消息“字段必须是数字”如果输入“abc”并按submit(或按enter键),该字段将标记为无效,但不会显示错误消息。再次按submit(或按enter)将显示消息。这种双重提交行为出现在Windows和OS X上最新版本的Firefox、Chrome、Safari和IE上。您会注意到默认的“此字段是必需的…”消息在第一次提

  • 问题内容: 我想自定义弹簧验证错误 但是我做不到。要采取的步骤是什么? 问题答案: 该JSR 303的默认邮件插补算法,您可以通过提供捆绑命名的资源来定制信息。在类路径中创建一个文件,其中包含: 这将更改@Size约束的默认消息,因此您应该使用@Size约束而不是特定于Hibernate的@Length约束。 您可以更改特定约束实例的消息,而不是更改所有约束的默认消息。message在约束上设置属

  • 我正在使用忍者表单插件在我的WordPress安装。 我的表单有3个输入文本字段。 在按下submit按钮后,我需要通过检查输入的值是否存在于我的数据库中的自定义表中来验证其中一个输入。 如果该值不存在,则不会发生任何事情(Ninja Form保存表单),如果它存在,则需要添加一个Ninja Form错误,并让用户更改输入,以便用新的值保存表单。 如何钩住提交操作?我如何才能在这个钩子中得到我需要

  • 当我们在OSB 12c中添加Validate Node以根据XSD验证传入请求时,如果验证失败,则在某些错误消息中会显示导致验证错误的字段名。但仅对于十进制值,错误消息只显示Invalid decimal Value,而没有提及引发错误的字段。我们能克服这个问题吗