2011-08-10 88 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,並且您的表單不會被提交