最近在做一個(gè)網(wǎng)站,需要使用到ajax表單驗(yàn)證。為了保證用戶輸入的數(shù)據(jù)合法性,我選擇使用php來(lái)實(shí)現(xiàn)表單驗(yàn)證功能。
前端頁(yè)面部分可以使用如下代碼:
<form method="post" action="submit.php"> <label>用戶名:</label> <input type="text" id="username" name="username"> <span id="nameTip"></span> <br> <label>密碼:</label> <input type="password" id="password" name="password"> <span id="passwordTip"></span> <br> <input type="submit" id="submit" value="提交"> </form>
這里通過(guò)id屬性來(lái)獲取輸入框和提示框的元素節(jié)點(diǎn),用name屬性來(lái)實(shí)現(xiàn)表單的提交。在這里用到了很多javascript和CSS的知識(shí),為了方便起見(jiàn),本文不再贅述。
下面是php部分的代碼:
<?php $username=$_POST['username']; $password=$_POST['password']; if(empty($username)){ echo "用戶名不能為空"; }else{ if(preg_match("/^[a-zA-Z0-9_]{5,16}$/",$username)){ echo "用戶名合法"; }else{ echo "用戶名不合法"; } } if(empty($password)){ echo "密碼不能為空"; }else{ if(preg_match("/^[a-zA-Z0-9_]{6,16}$/",$password)){ echo "密碼合法"; }else{ echo "密碼不合法"; } } ?>
這里首先獲取了用戶名和密碼的值,然后使用if語(yǔ)句和正則表達(dá)式來(lái)判斷輸入的用戶名和密碼是否合法,如果合法則輸出相應(yīng)的提示信息,否則輸出相應(yīng)的錯(cuò)誤信息。
如何實(shí)現(xiàn)ajax表單驗(yàn)證呢?前端可以使用如下代碼:
$('#username').blur(function(){ var nameValue=$(this).val(); $.ajax({ type:'POST', url:'check.php', data:'username='+nameValue, success: function(data){ $('#nameTip').html(data); } }) }); $('#password').blur(function(){ var passwordValue=$(this).val(); $.ajax({ type:'POST', url:'check.php', data:'password='+passwordValue, success: function(data){ $('#passwordTip').html(data); } }) });
當(dāng)輸入框失去焦點(diǎn)后,使用ajax來(lái)實(shí)現(xiàn)異步提交。這里注意需要提交的數(shù)據(jù)的格式是“參數(shù)名=參數(shù)值”,并且通過(guò)success屬性來(lái)獲取服務(wù)器返回的數(shù)據(jù)。在這里我們只需要將返回的數(shù)據(jù)放入相應(yīng)的提示框中即可。
這樣一個(gè)基本的ajax表單驗(yàn)證的功能就完成了。在實(shí)際開(kāi)發(fā)中,還需要考慮到很多細(xì)節(jié)問(wèn)題。例如,數(shù)據(jù)是否需要進(jìn)行轉(zhuǎn)義處理、錯(cuò)誤信息的美化等等。只有細(xì)心嚴(yán)謹(jǐn)?shù)拈_(kāi)發(fā)才能保證這個(gè)功能的穩(wěn)定運(yùn)行。
總之,ajax表單驗(yàn)證是一項(xiàng)非常實(shí)用的技術(shù),無(wú)論在那個(gè)領(lǐng)域都有廣泛的應(yīng)用。通過(guò)學(xué)習(xí)這個(gè)技術(shù),我們可以更好地為用戶提供服務(wù),使網(wǎng)站的系統(tǒng)更加安全、更加可靠。