(JQuery / PHP)在提交之前验证数据

时间:2012-01-22 21:36:15

标签: php jquery html forms input

在输入数据后立即验证输入(表单)数据的最佳方法是什么?

我的想法是在输入旁边放置一个DIV,这个div是我们会看到一条消息,说明数据是否有效,例如:

Your name:
<input type="text">
<div id="data-validation"></div>

<script>
$("input").change(function(){
    $("#data-validation").load("data-validation.php?input="+$(this).val());
});
</script>

//data-validation.php
<?php
$input = $_GET["input"];
if(strlen($input) < 3)
    echo "Name must have at least 3 characters.";
?>

PHP负责验证和显示数据。

我担心有更好的方法可以做到这一点,我想知道最好的方法是什么。

2 个答案:

答案 0 :(得分:2)

绝对!

您可以从JavaScript端执行大部分字符串检查,以防止对服务器进行不必要的调用。您仍然保留PHP检查,但现在要将它们复制到JavaScript端,例如:

$("#data-validation").change(function(){
    if($(this).val().length >= 3) {
       $(this).load("data-validation.php?input="+$(this).val());
    } else {
       alert("Name must have at least 3 characters.");
    }
});

如果您有多个检查,而不是检查长度,请检查在JavaScript端执行一系列任务的函数。你想确保你的PHP做同样的事情,因为浏览器可以很容易地绕过JavaScript。您希望通过减少对服务器的调用来优化,并利用更多本地资源。

答案 1 :(得分:1)

我强烈建议您使用jQuery Validate仍然需要在php端验证,但这将为您节省大量UI / jQuery方面的工作