2

我正在编写一些代码来向用户提供有关使用 AJAX 验证表单的实时反馈。我已经检查了长度以及该字段是否为空。现在我希望它清理用户输入,如果清理后的输入与用户的原始输入不同,那么告诉他们哪些字符是不允许的。

到目前为止,我编写的代码有效,除了一些字符最显着的“£”符号导致没有响应。我认为它与 json_encode 及其编码有关。

这是代码:

  $user_input = 'asdfsfs£';
  $strip_array = str_split(strip($user_input));
  $orig_array = str_split($user_input);
  $diff_array = array_diff($orig_array,$strip_array);
  $diff_str = implode(', ',$diff_array);
  $final = json_encode($diff_str);

  function strip($input){return htmlentities(strip_tags($input),ENT_QUOTES);}

希望有人能想出一个解决办法。

4

1 回答 1

0

如果这是通过 AJAX 完成的,那么您将需要编写一个 javascript 函数来完成此操作。

让服务器返回一个格式的 JSON 对象

{
    original: 'asdfsfs£',
    edited: 'asdfsfs',
    illegalChars: ['£']
}

在您的 html 中,您应该在表单输入字段旁边有空元素,您可以在其中输出表单验证消息

<input type="text" id="myTextField" />
<span id="myTextFieldLabel" />

现在让您的 javascript 根据验证数据更新 myTextFieldLabel 组件的内容

肖恩

于 2010-05-17T20:23:30.937 回答