0

我的代码中有两个checkboxes,如下所述:

<input type="checkbox" id="event_id" name="data[Noncompetitor][event_id][]" value="1"> <input type="checkbox" id="event_id" name="data[Noncompetitor][event_id][]" value="2">

现在我正在做像 onCreate 和 onComplete 之类的 Ajax 功能,我想在它启动时禁用复选框,并希望再次启用作为完成的请求。我不确定如何实现,Prototype JS并且上述两个复选框都具有相同id的 .

onCreate: function(){

            document.getElementById("event_id").setAttribute("disabled", "disabled");               
            Element.show('loading_message');
        }, 

onComplete: function(){

            document.getElementById("event_id").removeAttribute("disabled");                                
            Element.hide('loading_message');
        },

我上面的代码有效,但它只禁用第一个复选框,所以请在这里帮助我。

谢谢 !

4

1 回答 1

0

您不能在 HTML 页面中拥有两个相同的 id,没有什么可以阻止您在 HTML 页面中放置两个相同的 id,但是每次这样做都会杀死一只小猫,而且拥有两个 id 会让自己感到困惑在这种情况下。document.getElementById每当您在 HTML 页面中有两个相同的 id 时,它会返回它找到的第一个 id 并停止关心另一个,因此它只适用于一个复选框。

您可以为您的复选框分配类,或者如果您的表单也被命名,您可以使用名称属性引用您的复选框。

http://jsfiddle.net/Q5qNg/7/

于 2012-04-20T11:19:12.780 回答