2010-01-26 86 views
1

我真的很頭痛,試圖讓jQuery驗證插件工作。JQuery驗證插件:根據單選按鈕值使輸入需要

我有一個表單,第一個問題要求用戶從收音機組中選擇一個選項。這顯示了下面的進一步問題,取決於他們的選擇。

我想要實現的是明顯需要的問題,但顯然取決於用戶在第一個問題中選擇了什麼 - 即。如果問題不可見,則不需要。

的形式可以在這裏看到: http://planner.adamturtle.com/index.php?id=cab11f902671b3c2d6&page=2

所有的JavaScript代碼嵌入到頁面上。

感謝您的幫助。

+0

的內嵌的javascript有點令人困惑(因爲我無法立即理解它...但後來我對jQuery有點新鮮了) - 我建議刪除所有這樣做的嘗試,以便人們可以看到代碼的哪些元素實際工作。 – 2010-01-26 15:22:37

回答

0

jQuery驗證插件允許您添加自定義驗證方法,您可能需要嘗試這些方法。在此方法內部,您可以檢查收音機框的值,並根據該信息檢查其他字段值。

添加自定義驗證的方法稱爲addMethod(文檔鏈接here)。

0

如果所有問題都是必需的 - 無論如何 - 您可能只需驗證全部字段。

但是,這隻會在你使用某種Ajax調用來填充表單時才起作用。這樣就不會試圖驗證沒有顯示的問題。例如:

例如:有一個包含您想要嵌入的HTML的字符串。

var formString1 = '<input type="text" name="thisInput" />'; 
    formString1 = '<input type="radio" name="anotherInput" />; 
    ... 

然後將每個表單字符串注入給定的表單。

OR

發出與class="required"驗證形式的請求。您可以添加哪個,取決於單擊哪個單選按鈕。

的jQuery:

validate($(.required)); 

function validate(elements){ 
    $.ajax(//send request to validate 'elements); 
} 

這是一個有點髒,不使用形式驗證插件和都未測試,但它可能給你一些方向。

編輯: 你有PHP後臺驗證了一套系統?

+0

嗨德里克, 感謝您的回覆。 我敢肯定,這是可能的使用驗證插件方法,所以如果有一種解決方案,它會好得多。 我同意你的評論關於刪除以前的嘗試,我會把它們拿出來。 PHP後端程序由我撰寫,非常基本,因爲我不是開發人員。我甚至不認爲我有內置的服務器端驗證!雖然這不是當前的優先事項。 – Adam 2010-01-26 16:19:59

+0

服務器端驗證對於實時應用程序是必不可少的。如果您純粹依靠javascript進行輸入驗證 - 只需通過禁用javascript即可注入惡意內容。如果你正在尋找jQuery驗證內容,你似乎需要查看RaYell提供的文檔鏈接。 – 2010-01-26 17:44:29

2

爲了收集可見的元素:

$currentInputs = $("input:visible"); 

我會爲了提高可讀性做的是分配所有「活動」輸入中包含「validateMe」一類的驗證:

$currentInputs = $("input.validateMe"); 
$result = $currentInputs.validate();