2009-10-22 113 views
0

我正在使用jQuery的验证插件来验证用户名。不知何故,我的JSON请求数据是无效的,我不知道为什么。下面是代码:jQuery验证插件,远程调用

remote: { 
        url: "blablabla", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        data: '{"username":"' + function() { return $("#username").val() } + '"}' 
       } 

当我退房的请求,JSON数据是这样的:

{"username":"function() { 
    return $("#username").val(); 
}"} 

你有什么建议吗?

回答

0

看起来你的功能没有评估。你可以在调用之前运行它,并将实际的返回值放入数据中?

+0

如果我重写它是这样的: “数据: '{ ”用户名“:”' + getUsername()+ '“}' “,那么它工作正常,但我真的很喜欢在这种情况下使用匿名函数。 – Krassi 2009-10-22 16:38:00

+0

运行它通过邪恶eval在onSuccess – Bostone 2009-10-22 16:55:34

+0

嗯 - 我想知道这是否会工作 'data:'{“username”:“'+ function(){return $(”#username“)。val()} +'” }()'' – Bostone 2009-10-22 16:56:43

0

要编写自执行的函数的第一包装在括号:

(function() { return $("#username").val() })() 
+0

我试过了,但是我在web服务中得到了一个空字符串(而不是文本框的实际值) – Krassi 2009-10-22 17:11:00

+0

你在“web服务”中是什么意思?该回调只有在您的浏览器中执行时才有意义,该浏览器中包含带“用户名”ID的框。你能详细说明吗? – Bostone 2009-10-22 17:14:16

+0

那么函数(像这样包装)返回一个空字符串“”,而不是实际的值。 – Krassi 2009-10-22 17:16:46