【问题标题】:validate textbox while typing php [closed]在输入 php 时验证文本框 [关闭]
【发布时间】:2015-11-28 20:42:21
【问题描述】:

我有一个带有文本输入字段的表单。文本输入需要在用户输入数据的同时进行验证。

<form method="post" action="Newsletter/tester.php">
    <label for="email">email</label>
    <input type="text" name="email" placeholder="Enter your email  *" maxlength="50" required>
    <input type="submit" value="test">
</form>

输入 email 文本框应该在服务器端进行验证,但我不知道在输入时验证文本字段。

有没有办法使用php脚本来做到这一点?

【问题讨论】:

  • 使用 Javascript(或 jQuery)对服务器进行 Ajax 调用,以检查 input 字段中 keyup 的有效性。

标签: php html validation


【解决方案1】:

如果你愿意使用 jQuery 和 PHP,下面是你可以做的一个例子:

HTML

<form action="Newsletter/tester.php" method="post">
    <input type="email" name="email" id="email-input">
    <button type="submit">Send</button>
    <br/>
    <span id="email-validate">Waiting for user input...</span>
</form>

jQuery

jQuery(function($) {

    // When the user types something in the input
    $('#email-input').on('keyup', function(e) {

        // set the variables
        var $input = $(this)
        ,   value  = $input.val()
        ,   data   = {
                email: value   
        };

        // perform an ajax call
        $.ajax({
            url: 'my/validator.php', // this is the target
            method: 'get', // method
            data: data, // pass the input value to server
            success: function(r) { // if the http response code is 200
                $('#email-validate').css('color', 'green').html(r);
                $('button').removeAttr('disabled');
            },
            error: function(r) { // if the http response code is other than 200
                $('#email-validate').css('color', 'red').html(r);
                $('button').attr('disabled', 'disabled');
            }

        });
    });

});

PHP (>= 5.4)

<?php
if(isset($_GET['email'])) {
    $email = $_GET['email'];

    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
        http_response_code(200);
        echo 'The email '.$email.' is valid';
    } else {
        http_response_code(412);
        echo 'The email '.$email.' is not valid';
    }
}

【讨论】:

  • 会有性能问题和悬空响应,所以abort 发送新邮件之前的电子邮件验证之前的 ajax 调用
【解决方案2】:

这是在 PHP 和 Javascript 中实现的。当您键入时,Javascript 通过 Ajax 调用将写入的数据发送到 php,然后返回它...

正确的方法是验证代码

  1. 在 javascript 中,因为它正在被键入。这是通过input 中的事件onkeydown="validate_email(this)" 完成的
  2. 通过添加onsubmit="return email_valid();" 在提交表单之前确保电子邮件地址有效。如果 javascript 函数 email_valid 返回 true,则提交表单,否则不提交。
  3. 在 PHP 中发送完整数据时,确认它确实是$_REQUEST['email'] 中的正确电子邮件地址

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多