2013-11-21 79 views
3

我從構建爲主幹視圖的各種複雜控件創建表單。可以理解,我想要可靠地將標籤鏈接到<input>元素,我正在使用for正常屬性。在HTML表單中使用自動生成的(即隨機)ID

但是,有時我需要多次使用相同的控件。我使用數據屬性來驅動表單,因此我不需要id屬性供我自己使用,並且可以使用類來標識每個控件。

因此,我正在考慮生成隨機ID是否合理,只需將<label><input>鏈接在一起?這似乎是一個非常糟糕的主意,但我不確定哪個更好?

我不能只把<input>放在<label>之內,因爲它們必須彼此分開。

回答

2

自動生成的ID沒有什麼不好。如果他們不是人類(==開發者)可讀的,那麼你可以在那裏瘋狂。創建一個簡單的功能,吐出獨特的字符串,然後你去:

function generateId() { 
    return 'GENERATED_ID_' + (++generateId.counter); 
} 
generateId.counter = 0; 

id = generateId(); 
html = '<label for="'+id+'">Foo</label> <input id="'+id+'">'; 

這裏沒什麼不好發生。

(當然,如果能窩在標籤的投入,這將是一丁點更好。)

+1

謝謝,結合使用Backbone'cid',這可以很好地工作! –

2

我會用骨幹視圖的cid屬性。這已經是獨一無二的。可能在基本視圖中覆蓋_.template以始終包含此項(以保存每次傳遞)。