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