2009-10-22 111 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