当另一个表单具有焦点时,在页面表单上禁用一个

时间:2014-08-20 12:42:41

标签: javascript jquery forms

所以我有一个问题,我在同一个网页上有两个具有相同ID的表单(假设我无法轻易地更改任何表单的ID,并且页面上都需要这两个表单。)

当我提交其中一个表格时,它也提交另一个表格,空白,创建两个提交。

我想禁用当前焦点的表单的相反形式。因此,例如,如果页面底部的表单的提交按钮正在提交,那么理想情况下,顶部表单已经被javascript禁用并消除了第二次提交。

以下是顶层表单的代码 -

<div id="gf_top">
<form method="post" enctype="multipart/form-data" id="gform_1" action="/">

底部形式 -

<div id="gf_bottom">
<form method="post" enctype="multipart/form-data" id="gform_1" action="/">

我知道零javascript / JQuery。

我怀疑我需要使用类似的东西(基于一些谷歌搜索)

$("#gf_top #gform1 :input").attr('disabled', true);

但我真的不知道为一个人的焦点添加的代码会禁用另一个。我想还需要有代码来删除禁用的属性当/如果禁用的表单获得焦点然后禁用其他... Sheesh,任何帮助非常感谢!

2 个答案:

答案 0 :(得分:2)

不能(不应该)有两个具有相同ID的元素。 更改ID

要获取没有ID的表单,您可以使用其标记名称:

// All inputs of gf_top form are disabled
$("#gf_top form input").attr('disabled', true);

W3 says关于id属性:

  

此属性为元素指定名称。该名称在文档中必须是唯一的。

答案 1 :(得分:0)

如果你不能给你自己的表格,你至少会试图摆脱那些ids。在呈现html之前你必须这样做(服务器端)。

一旦你到达那里,你不必担心禁用任何东西。仅发送按下提交按钮的表单。