2011-05-26 80 views
1

我正在構建搜索表單(here's the demo)。不幸的是,我已經到了一個地步,我真的不知道下一步該怎麼做。如何複製搜索表單元素並添加唯一ID

我需要添加將導致添加另一個城市按鈕來複制State/Province和City SELECTs的功能,這些選擇通過Ajax調用填充XML數據,但具有唯一ID,因此表單最終可以將搜索與多個城市的條款來產生搜索結果。此外,它應該能夠添加不超過4個其他城市。

任何人都可以至少指出我應該如何開始呢?

回答

1

如果我理解,您並不需要爲每個創建的元素生成ID,您可以簡單地擁有一個類並使用它來訪問它們。

我把這個合在一起來說明這個想法:

http://jsfiddle.net/2SLrF/

一切工作完全關閉類的。

注意:我對鏈接有點瘋狂,因爲它很快而且很髒,爲了可維護性你可能想分開它。

如果由於某些其他原因需要生成ID,則可以簡單地創建一個計數器變量,並將其附加到ID的末尾以便它是唯一的。

編輯:同樣的例子,擴大和評論。 http://jsfiddle.net/2SLrF/1/

+0

這很有趣。你正在做一些我不熟悉的東西(例如.clone())。但是我無法將它合併到我的代碼中。它使用相同的ID克隆第二個SELECT,因此當您更改第一個狀態字段時,它會更改這兩個城市字段中的選項。 – Tom 2011-05-29 17:27:39

+0

您仍在使用ID。我發佈的訣竅是它根本不使用ID。它使用頁面的佈局以及由給定類型的所有元素共享的類訪問元素。例如,'$(「。s1」)。live(「change」,function(){(this).next(「。s2」)。show(); });''具有's1'類的元素髮生變化,找到下一個具有's2'類的元素。所以它總是會在's1'發生變化後直接抓住's2'。這就是爲什麼只有一個城市選擇受到影響。 – 2011-05-29 18:31:00

+0

@Tom看到我的答案更新。我拿出了這個例子,並將其擴展並添加了解釋它的註釋。希望有所幫助。 – 2011-05-29 18:36:26