以下是我爲ajax驗證所寫的代碼。我還沒有創建表單的提交按鈕。問題是,我必須禁用提交按鈕,直到所有字段都填充了適當的信息並以ajax方式驗證。這只是一個包含兩個字段的示例。我有超過20個這樣的領域,請幫助我做到這一點。謝謝。使用ajax驗證時禁用提交按鈕
形式:
<p>
<label for="cname">Name</label>
<em>*</em><input id="cname" name="name" size="50" minlength="2"onkeyup="checkname()"/>
<span id="target1"></span></p>
<p>
<label for="fat">Father's Name</label>
<em>*</em><input id="cfat" name="father" size="50" onkeyup="checkfather()" />
<span id="target2"></span></p>
使用Javascript(AJAX):
var ajax = create_ajax_object();
function checkname(){
if(ajax){
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
document.getElementById("target1").innerHTML = ajax.responseText;
}
}
ajax.open("POST", "ajval.php", true);
var values = "name=" + encodeURIComponent(document.commentform.name.value);
values = values + "&action=" + encodeURIComponent("check1");
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajax.send(values);
}
else{
alert("Your browser doesnt support AJAX!");
}
}
function checkfather(){
if(ajax){
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
document.getElementById("target2").innerHTML = ajax.responseText;
}
}
ajax.open("POST", "ajval.php", true);
var values = "father=" + encodeURIComponent(document.commentform.father.value);
values = values + "&action=" + encodeURIComponent("check2");
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajax.send(values);
}
else{
alert("Your browser doesnt support AJAX!");
}
}
PHP:
<?php
$action = $_POST["action"];
switch($action)
{
case "check1":
$name=$_POST["name"];
if($name!="")
echo '<img src="green-tick.png" height="20" width="20"/>';
else
echo'<span style="color:red;">Cannot be left blank</span>';
break;
case "check2":
$father=$_POST["father"];
if($father!="")
echo'<img src="green-tick.png" height="20" width="20"/>';
else
echo '<span style="color:red;">Cannot be left blank</span>';
break;
?>
是PHP對這兩個字段的完整驗證嗎?如果是這樣,絕對沒有理由使用AJAX進行客戶端驗證; JavaScript不僅能夠檢查字符串是否爲空。 – 2013-03-04 09:45:06
您好@AnthonyGrist我使用帶有許多字段的窗體的標籤視圖,所以點擊提交按鈕後驗證會令人噁心。 – MEP 2013-03-04 09:49:02
點擊提交按鈕後,我沒有說任何關於驗證的內容。我正在討論如何單獨驗證您的輸入,並使用您當前擁有的相同事件處理程序,但如果不需要,則不會使用AJAX進行驗證。如果唯一的驗證是輸入的值不能是空字符串,那麼你不需要使用AJAX。 – 2013-03-04 09:51:27