2011-08-10 90 views
0

我正在使用Ajax来测试注册表单上的用户名是否太短。如何防止基于PHP值提交表单?

现在它只是做到这一点:

if (str.length<6) 
    { 
    document.getElementById("txtHint").innerHTML="Too short"; 
    return; 
    } 

如何添加上面的操作不会让用户提交?

<form action="/insert/insert-user.php" method="post"> 
    <input type="text" name="user" onkeyup="showHint(this.value)"/> 

回答

0

您可以尝试添加表单名称并向您的表单提交事件。

<form name="formName"action="/insert/insert-user.php" method="post" onsubmit="validate()"> 

function validate() { 
    if (document.formName.user.value.length < 7) { 
     // Display your message in your division 
     return false; 
    } 
} 

还必须重复检查在PHP因为用户可能禁用了JavaScript和安全措施:

if ($_POST['your_submit_button']) { 
    if (strlen($_POST['user']) < 7) { 
     $submit = false; 
     die ("<div style='color: red;'>Too short</div>"); 
    } 
} 
1

在CheckUserName函数中,添加您的ajax代码并返回true或false。如果它是假的,它不会提交。

<form action="/insert/insert-user.php" onsubmit="CheckUserName()" method="post"> 
0

给你错误的div一类让我们说“错误”,并在提交表单通话中,你检查的jQuery的,如果错误类有文字另一个功能。如果班级的文字只是返回false,并且您的表单不会被提交