使用ajax进行电子邮件验证并解析文本(而不是json)数据将参数值返回为null

时间:2015-03-25 06:30:43

标签: jquery ajax json

我已经在jquery中编写了一个程序,用于使用ajax进行电子邮件和电话号码验证,我面临的问题是,无论我输入的电子邮件ID是什么,显示"电子邮件ID已经注册"即使我输错了。这些值来自mysql数据库,我正在使用jsp来检查我的电子邮件ID是否存在,如果它存在,它会给我" 1"如果不存在,它会给我" 0"。

$(document).ready(function() {
$("#user_form").validate({
    rules : {
        phone :{
            required:"true",
            minlength:"10"
        },
        email : {
            required : "true",
            email : "true",
        }
    },
    messages:{
        email: 
        {
            required: "Please enter your email address",

        },
        phone:"Please enter a 10 digit mobile number",
    },
});

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=
    ([^&#]*)').exec(window.location.href);
    if (results==null){
       return null;
    }
    else{
       return results[1] || 0;
    }
}

$.validator.addMethod("validateUserEmail", function(value, element)
        {
            var inputElem = $('#user_form :input[name="email"]'),
            data = { "emails" : inputElem.val() },
            eReport = ''; //error report
            var param_value = (decodeURIComponent($.urlParam('email')));
            console.log("Param Value:"+param_value);
             $.ajax(
                    {
                        type: 'GET',
                        url: 
             'http://localhost:8082/JqueryForm/validate_emailid_succes.jsp',                           
                        data: { email_id: param_value }, 
                        dataType: 'text',
                        success: function(data)
                        {
                             console.log("This Data:"+data);
                                 if (data == 0)
                                    {
                                     return true;
                                    }
                                    else
                                    {
                                        var message = "This email address is 
                                                       already registered";
                                         console.log("Message:"+message);
                                         return message;
                                    }

                        },
                       error: function(xhr, textStatus, errorThrown)
                        {
                            alert('ajax loading error... ... '+url + query);
                            return false;
                        }
                    });
        }, 'This email address is already registered');
$(':input[name="email"]').rules("add", { "validateUserEmail" : true} );

});

JDBC代码:

public int getEmailID(String email) {
    int email_result_count = 0;

    try {
        prep = (PreparedStatement) connection
                .prepareStatement("Select count(email_id) from user_info 
                where email_id='"+email+"'");
        rSet = prep.executeQuery();
        while (rSet.next()) {
            email_result_count = rSet.getInt(1);
        }
        System.out.println("**email_result_count:"+email_result_count);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return email_result_count;
}

我的Jsp:

<%
//JSONObject obj = new JSONObject();
request.setCharacterEncoding("utf8");
response.setContentType("application/text");
Sql_Server server = new Sql_Server();
String email_id = request.getParameter("email_id");

int email_result = server.getEmailID(email_id);
out.println(email_result);

%GT;

请提供一些帮助以了解我哪里出错了。 谢谢

0 个答案:

没有答案