【问题标题】:Validating input field on exit of field pure PHP在字段纯 PHP 退出时验证输入字段
【发布时间】:2018-08-09 07:29:18
【问题描述】:

我正在尝试创建一个系统,该系统可以计算为发票相关计算提供的所有输入。

我想要实现的是当我有多个文本字段时(是的,我想使用文本字段,否则我会为数字字段使用内置验证器)

因此,当我单击文本框时,它需要实时验证输入是否为数字。当它不是它时,它应该在它上面显示一些它不是的消息,并使该字段像一个错误一样变红。提交表格之前

是的,我知道这很容易通过 jQuery/ajax/php 设置完成,但我只想使用 PHP。那么是否有某种方法可以执行此纯 PHP,因为我似乎无法找到执行此操作的方法或教程。

对不起,如果这个问题很糟糕,但我现在已经连续搜索了 2 个小时,甚至无法找到仅使用 PHP 的方法。

我正在使用一个隐藏的 div,并打算使用仅在输入错误时显示的样式标签,所以现在错误/红色已经完成,我只需要某种验证器

提前感谢,如果这是一个糟糕的问题,我很抱歉

【问题讨论】:

  • PHP 是服务器端语言。我认为纯 php 不可能
  • 您应该使用 java 脚本作为用户端进行验证的更好方法,php 用于服务器端验证。
  • @ZainFarooq 感谢您的反应,我想了很多,但得到多人的确认很好。
  • @Ylama 是的,我已经完成了这个 atm,但我需要确认这是可能的还是不可能的,所以如果有人把它放在答案中,我可以关闭这个问题并接受它。

标签: php css forms textbox live


【解决方案1】:

如果您想在 PHP 中的服务器端进行验证,您需要在每次点击时使用 ajax 请求并发送数据,或者在回显或输出任何内容之前执行以下操作,例如,如果您的模型或控制器.. .迭代您的数据并对您的每个值运行此正则表达式规则:

if( preg_match('/^[1-9]\d*(\,\d+)?$/', $inputValue ) ) {
// It is numeric
}
else{
// It is not numeric
}

我假设您使用. 作为您的小数运算符?如果否,则规则应为:

preg_match(^[1-9]\d*(\,\d+)?$)

这会告诉你它是否是数字。

请注意,$inputValue 是您正在测试的变量。

【讨论】:

  • 这不会是“活的”吧?如果我只使用 preg_match?假设我检查 input == preg 字符串并单击它不会说“是否为数字”的文本框旁边,对吗?
  • 你在这里想要的是用户交互,所以当用户点击一个元素时,你需要使用 JS 向你的后端(PHP 逻辑)发送一个 AJAX 请求,然后让您的前端知道该值是有效还是无效...正如我在开始时解释的那样,PHP 不能在客户端工作,而不是您所说的“实时”。
  • 好的,谢谢您的扩展解释,现在我接受您的回答,这对我来说更清楚了。
【解决方案2】:

因为您想在浏览器(即客户端)上实时验证文本框,所以您不能使用服务器端语言的PHP来完成此操作。对不起,你不能。

【讨论】:

    猜你喜欢
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2020-02-04
    • 2011-11-22
    • 2013-02-24
    相关资源
    最近更新 更多