2009-04-30 53 views
4

背景 我有兩個鏈接在一起的選擇表單域:持續時間和頻率。當用戶選擇一個頻率時,動態插入持續時間選項。有默認選項,但這些只是當用戶展開它時字段不爲空。如何爲選擇字段重新填充動態生成的選項?

例如,頻率選項是「日」,「其他日」和「星期」。如果我選擇「日」,頻率選項會變爲「5天」,「15天」和「30天」。

問題 當用戶提交表單有錯誤,形式返回與這個問題是所有的表單字段重新填充和突出顯示的錯誤 - 除了頻率選擇領域 - 其選項是動態產生。它沒有突出顯示,它的選項是默認選項。

有沒有一種方法可以在用戶提交錯誤時重新填充這些選項。我們正在進行相當多的JavaScript驗證,所以這種情況不應該經常發生,但是希望儘可能爲用戶獲得儘可能輕鬆的錯誤體驗。

代碼 我正在使用jquery和一個名爲級聯的jquery插件將兩個字段鏈接在一起。 (http://plugins.jquery.com/project/cascade

這是我的自定義JavaScript。

這個腳本生成的選項列表:

var list1 = [ 
    {'When':'86400','Value':' ','Text':' '}, 
    {'When':'172800','Value':' ','Text':' '}, 
    {'When':'604800','Value':' ','Text':' '}, 
    {'When':'86400','Value':'432000','Text':'5 days'}, 
    {'When':'86400','Value':'1296000','Text':'15 days'}, 
    {'When':'86400','Value':'2505600','Text':'30 days'}, 
    {'When':'172800','Value':'1296000','Text':'15 days'}, 
    {'When':'172800','Value':'2505600','Text':'30 days'}, 
    {'When':'172800','Value':'3888000','Text':'45 days'}, 
    {'When':'604800','Value':'2505600','Text':'4 weeks'}, 
    {'When':'604800','Value':'3715200','Text':'6 weeks'}, 
    {'When':'604800','Value':'4924800','Text':'8 weeks'} 
]; 

function commonTemplate(item) { 
    return "<option value='" + item.Value + "'>" + item.Text + "</option>"; 
}; 

function commonMatch(selectedValue) { 
    return this.When == selectedValue; 
}; 

這是觸發的選擇選項生成的腳本:如何

jQuery("#duration).cascade("#frequency",{ 
    list: list1,    
    template: commonTemplate, 
    match: commonMatch   
}) 

問題 有什麼想法獲取動態生成的頻率選項以在表單返回給瀏覽器時出錯並重新填充?可以使用我目前使用的級聯插件還是其他方法?

幫助非常感謝。 :-)

+0

+ 1爲來自第一次使用者的好的措辭問題。在這些零件周圍發生的事件幾乎是非常罕見的...... – 2009-04-30 18:23:02

+0

謝謝Paolo。 :)真的想確定我有一個很好的答案,所以問了一個徹底的問題。希望我沒有太過分。 – Rick 2009-04-30 18:31:49

回答

2

我對這個插件並不熟悉,但是不能僅僅在document.ready上觸發#duration和/或#frequency的事件change()

$(document).ready(function() { 
    $('#duration').change(); 
    $('#frequency').change(); 
}); 

我敢肯定所有的腳本正在做的是結合東西的選擇(默認情況下,至少),這樣會觸發插件工作它的神奇變化事件...

相關問題