在HTML表单中使用自动生成(即随机)的ID

Using auto generated (ie random) IDs in HTML forms

本文关键字:随机 ID 自动生成 表单 HTML      更新时间:2023-09-26

我正在从作为主干视图构建的各种复杂控件创建一个窗体。可以理解的是,我希望将标签可靠地链接到<input>元素,这是我使用普通for属性所做的。

但是,有时我需要多次使用同一控件。我使用数据属性来驱动表单,因此我不需要id属性供自己使用,并且可以使用类来标识每个控件。

因此,我正在考虑生成随机id,仅仅将<label><input>链接在一起是否有意义?这似乎是一个非常糟糕的主意,但我不确定还有更好的主意吗?

我不能把<input>放在<label>里面,因为它们必须彼此分开。

自动生成ID没有什么不好的。如果它们不是人类可读的,你可能会在那里疯掉。创建一个简单的函数,吐出唯一的字符串,就这样:

function generateId() {
    return 'GENERATED_ID_' + (++generateId.counter);
}
generateId.counter = 0;
id = generateId();
html = '<label for="'+id+'">Foo</label> <input id="'+id+'">';

这里没有发生什么坏事。

(当然,如果可以将输入嵌套在标签中,那会更好一点。)

我将使用Backbone视图的cid属性。这已经是独一无二的了。然后可能会覆盖基础视图中的_.template,以始终包含此内容(以避免每次传入)。