返回对jquery验证的非布尔响应

返回对jquery验证的非布尔响应,jquery,python,ajax,django,validation,Jquery,Python,Ajax,Django,Validation,我正在使用jquery验证插件验证输入表单。在表单中,当用户在一个字段中输入值时,我会对MySQL数据库进行远程检查,如果经过验证,我会使用返回的值填充其他相关字段 虽然验证方法显示了myfield的200响应,但由于我将非布尔字符串作为HttpResponse返回,因此表单不会被提交,但没有错误消息。一旦我将返回字符串更改为“true”,表单就会被提交 我的问题是,验证工作绝对需要一个布尔值 那么要提交的表格呢 下面是javascript调用python方法进行远程检查的情况 ... $(#M

我正在使用jquery验证插件验证输入表单。在表单中,当用户在一个字段中输入值时,我会对
MySQL
数据库进行远程检查,如果经过验证,我会使用返回的值填充其他相关字段

虽然验证方法显示了
myfield
200
响应,但由于我将
非布尔字符串作为
HttpResponse
返回,因此表单不会被提交,但没有错误消息。一旦我将返回字符串更改为
“true”
,表单就会被提交

我的问题是,验证工作绝对需要一个布尔值 那么要提交的表格呢

下面是javascript调用python方法进行远程检查的情况

...
$(#MyForm).validate{
   ...
   rules:{
     myfield:{
       required: true,
       remote : {
        url: "check_field", // method returns non boolean value, values to populate other fields
        type: "post",
        data : {
          'csrfmiddlewaretoken':token,
           this_field: function(){
           return $('#id_myfield').val()
          }, // end of this_field
        }, // end of data
        complete :function (data) {
          console.log("DATA: ", data);
          var str = data.responseText.split(":"); // parse response
          $('#id_other_field1').val(str[0]); // populate other field 1
          $('#id_other_field2').val(str[1]); // populate other field 2

        }, // end of complete
      },// end of remote
    }, // end of myfield
  }, // end of rules
  ...
}// end of form validate
django视图中调用的python方法如下所示

def check_field(request):
    if request.is_ajax():
        myfield = request.POST.get('myfield')
        # check MySQL database for presence of myfield
        returned_values = some_python_method(myfield)
        if 'absent' in returned_values:
            message = "false"
            return HttpResponse(message)
        else:
            message = returned_values
            return HttpResponse(message, 'application/text')
        ...

我完全不明白你的问题。“真”和“假”只是字符串,它们看起来有点像布尔值这一事实完全无关。在任何情况下,代码中的任何内容似乎都不依赖于这些字符串的值。同意它们是字符串。那么,我的问题是什么阻止了表单的提交,或者我应该改变什么来成功提交表单?这是不可能回答的,因为您没有解释“阻止表单提交”是什么意思。如何“预防”?这种预防的症状是什么?你到底看到了什么?您遇到了什么错误?我尝试了
$('#MyForm')。在('submit',函数(e){var isvalidate=$(“#MyForm”).valid();console.log(isvalidate);}
并打印
true
。通过chrome developer tools,我没有看到任何错误消息。所有字段都被绿色包围,单击submit不起任何作用,页面是静态的,包含所有字段值。我的意思是在字段周围键入绿色边框,表示这些字段已验证。