gpt4 book ai didi

javascript - 为什么 ValidForm 忽略我的验证表达式?

转载 作者:行者123 更新时间:2023-11-28 01:39:14 25 4
gpt4 key购买 nike

如果在表单字段中输入 1-11 个字符之间的任何内容,下面的代码将正确阻止提交表单。

但是,一旦输入任何类型的 12 个字符,表单字段就会通过验证。

  $objGroup->addField('phone', 'Location Phone', VFORM_CUSTOM,
array(
'required' => false,
'validation' => '/^\d{3}-\d{3}-\d{4}$/',
'minLength' => 12,
'maxLength' => 12
),
array(
'type' => 'Location Phone not entered correctly',
'minLength' => 'Location Phone must be entered like ###-###-####'
),
array(
'hint' => '###-###-####',
'tip' => 'Enter your phone number.',
'default' => $GLOBALS['phone']
)
);

每当在表单字段中输入某些内容时,我需要它只允许输入 999-999-9999 的值字符串。我的代码有什么问题?

无法提交包含 11 个字符的表单字段输入(请注意红色错误消息)表单:

enter image description here

可以提交包含 12 个字符的表单字段条目,其中最后一个字符不是数字(观察没有红色错误消息)表单:

enter image description here

VFB 文档除外

#### Custom field types
* `VFORM_CUSTOM`
This generates a text input field with a custom validation regular expression

* `VFORM_CUSTOM_TEXT`
This generates a textarea input field with a custom validation regular expression

##### Example - Validating a social security number
$objSocialSecurity = $objForm->addField(
"socialsecurity",
"Your social security number",
VFORM_CUSTOM,
array(
"validation" => "/^\d{3}-\d{2}-\d{4}$/"
),
array(
"type" => "Invalid Social Security number"
)
);

我的尝试和错误测试:

  1. 从我找到的文档中逐字复制并粘贴示例验证片段。它并没有使它发挥作用。我怀疑“validation”“type”之间存在某种脱节。
  2. 将我对单引号的使用更改为双引号,如文档中所示。它并没有使它发挥作用。
  3. 重新排序了“validation”“type”在各自数组中的位置。它并没有使它发挥作用。
  4. “类型”更改为“验证”。它并没有使它发挥作用。
  5. 删除了使用 minLength 和 maxLength 来查看是否存在冲突。它并没有使它发挥作用。
  6. 设置了必填字段,以查看验证是否仅在需要表单字段时才起作用。它并没有使它发挥作用。
  7. 我已经用尽了我的 t&e 测试...

最佳答案

尝试从正则表达式中删除 ^$ 字符:

/\d{3}-\d{3}-\d{4}/

当 minLength 和 maxLength 为 12 时,^$ 变得多余,并且通常会自行导致验证问题。

关于javascript - 为什么 ValidForm 忽略我的验证表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com