2010-11-06 170 views
2

在我的用戶編輯器頁面中,我試圖檢查輸入電子郵件是否被其他客戶使用,但不是客戶當前的電子郵件。這是我的代碼,它似乎沒有顯示錯誤消息,但我的表單無法提交。jQuery驗證遠程電子郵件驗證不起作用

這裏是我的JS:

$("#cedit").validate({ 
rules : { 
    email : { 
    email : true, 
    remote : { 
    url : "ajax_checkemail.php", 
    type : "GET", 
    data : { 
    email : function() { 
     return $("#email").val(); 
    }, 
    custid : function() { 
     return $("#editc").val(); 
    } 
    } 
    } 
    } 
}, 
messages : { 
    email : { 
    remote : "Email is in use" 
    } 
} 
}); 

而且PHP

include 'common.php'; 
$valid = false; 
if(isset($_GET['email'])) 
{ 
    $email = $_GET['email']; 
    $query = "SELECT * FROM `customer` WHERE `email_address` = '$email'"; 
    if(isset($_GET['custid']) && !empty($_GET['custid'])) 
    { 
     $custid = $_GET['custid']; 
     $query .= " AND `customer_id` != '$custid'"; 
    } 
    $result = query($query); 
    $count = mysql_num_rows($result); 

    if ($count == 0) 
    { 
     $valid = true; 
    } 
} 
echo json_encode($valid); 

的PHP工作正常,當我直接訪問它,並把GET參數的URL,但由於某種原因它贏得沒有正確驗證,因此不會讓表單提交。

+0

http://beski.wordpress.com/2009/05/16/check-email-already-exist-ajax-jquery/ – ArK 2010-11-06 04:59:35

+0

你的'

'標記看起來像什麼? – 2010-11-06 09:58:33

+0

同樣的問題:(表單看起來像這樣: – 2010-12-02 22:46:27

回答

0

我從來沒有使用過這個遠程驗證,但是你不需要在PHP腳本中將響應類型設置爲json嗎? As in header('Content-type: application/json');