论坛首页 Web前端技术论坛

JQuery.validate.js使用remote验证唯一性的bug

浏览 4733 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-30  
以下是源代码的一部分:
$.ajax($.extend(true, {
         url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
success: function(response) {
validator.settings.messages[element.name].remote = previous.originalMessage;
var valid = response === true;
if ( valid ) {
var submitted = validator.formSubmitted;
validator.prepareElement(element);
validator.formSubmitted = submitted;
validator.successList.push(element);
validator.showErrors();
} else {
var errors = {};
var message = response || validator.defaultMessage( element, "remote" );
         errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;
validator.showErrors(errors);
}
previous.valid = valid;
validator.stopRequest(element, valid);
}
返回数据类型为“json”,既然为json,那就是key/value了,那么response === true就永远为false了,
这时form表单就永远不能提交了。
   发表时间:2011-10-09  
response === true

这个要看你的response 是boolean 还是 string 类型
0 请登录后投票
   发表时间:2011-10-28  
boolean类型的怎么返回?请指教
0 请登录后投票
   发表时间:2011-10-28  
response.setContentType("text/html;charset=utf-8");

response.getWriter().write("true");
return null;

jquery.form.js
    var options = {
        beforeSubmit:  showRequest, 
        success:  showResponseJson, 
        error: showResponseError,
        url:       url ,        
        dataType:  'json',
        type:      'post'
    };

function showResponseJson(responseText, statusText, xhr, $form)  {
$("#div_wait_ajax_form").dialog("close");

var valid = responseText === true;

alert(responseText === true);//true
alert(responseText == true);//true
//alert(responseText === "true");//false
//alert(responseText == "true");//false
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics