Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种“防白痴”的方法来重新启用表单上的所有字段(无论其状态如何)?_Javascript_Html_Forms_Field - Fatal编程技术网

Javascript 是否有一种“防白痴”的方法来重新启用表单上的所有字段(无论其状态如何)?

Javascript 是否有一种“防白痴”的方法来重新启用表单上的所有字段(无论其状态如何)?,javascript,html,forms,field,Javascript,Html,Forms,Field,我的问题是,我的javascript启用/禁用了一些表单字段,默认情况下,用户不需要将这些字段发送到我的企业,但如果需要,可以通过复选框启用它们。不过,我显然有一个表单提供程序,它对禁用字段非常熟悉。基本上,访问者将选中复选框,以启用他们需要输入或选择输入的某些字段 我想知道的是,我是否可以创建一个复选框,将所有字段的启用或禁用状态撤消为刚刚启用,而不管其当前状态如何,以便提交所有字段 我需要这种功能的另一个原因是,客户端收到一封自动回复电子邮件,当字段被禁用时,如果在提交表单之前该字段被禁用,

我的问题是,我的javascript启用/禁用了一些表单字段,默认情况下,用户不需要将这些字段发送到我的企业,但如果需要,可以通过复选框启用它们。不过,我显然有一个表单提供程序,它对禁用字段非常熟悉。基本上,访问者将选中复选框,以启用他们需要输入或选择输入的某些字段

我想知道的是,我是否可以创建一个复选框,将所有字段的启用或禁用状态撤消为刚刚启用,而不管其当前状态如何,以便提交所有字段

我需要这种功能的另一个原因是,客户端收到一封自动回复电子邮件,当字段被禁用时,如果在提交表单之前该字段被禁用,则会看到%FeildName%。这仅仅是因为在表单上提交数据时该字段不存在,显然是因为它处于禁用状态

如果可以做一些事情,可以在我现有的javascript代码中输入吗?我已经有了一个表单验证脚本,用于javascript

我并不擅长javascript,而且以前从未真正玩过jQuery,我也没有足够的智慧来学习jQuery,因此,如果有任何帮助,我将不胜感激

我的代码可以在这个页面上看到,只需查看源代码。


表单最底部的复选框,在提交和重置按钮之前,我想执行此功能,以便提交所有信息。再次感谢您预期的帮助,我们将非常感激。

有一种非常简单的方法可以做到这一点。您所要做的就是将所有字段项放在一个数组中,然后当用户选中复选框时,您可以为数组中的每个项创建一个数组循环,forvar i=0;i<数组长度;i++ifcheckBox.checked==true{array[i]。disabled=false;}else{array[i]。disabled=true;}。如果取消选中复选框,这将禁用所有项目,并在选中时启用

下面是一个小示意图:

在jQuery中:

$(":input").prop('disabled', false);

:input是一个jQuery伪选择器,它匹配所有类型的表单输入字段。.prop方法获取或设置属性,因此这会将所有禁用的属性设置为false。

以下示例是确保当前表单的所有字段都已重新启用的方法。单击按钮时,带有input、select、textarea和checkbox标记的所有元素都将启用:

$(document).ready(function() {
  $('#switcher').click(function() {
    $('input, select').each(function() {
        if ($(this).attr('disabled')) {
            $(this).removeAttr('disabled');
        }
    });
  });
});
您需要使用jQuery并通过将以下内容粘贴到页面标题将其添加到页面中:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
在本例中,使用了Google CDN


请阅读更多关于和的内容。

大致如下:

function validate(OrderAudio) {
    if(valid) {
        var e = document.getElementsByTagName('input'), i;
        for(i = 0; i < e.length; ++i) {
            e[i].disabled = false;
        }
        e = document.getElementsByTagName('textarea');
        for(i = 0; i < e.length; ++i) {
            e[i].disabled = false;
        }
    }
}

如果您没有理解jQuery的能力,那么您的工作方向就错了。你打算为你需要写的每一个剧本都跑来吗?@Geno J,试着读我的答案!它有一个例子,你需要和基本信息的新手,以便开始使用jQuery@Barmar,追随jQuery的智者,真的吗?事实上,你认为只有一种方法可以做任何事,这让我非常难过…@其中一种是他的话,不是我的。嘿,我也说过我思想开放。如果上面有一本傻瓜书,那对我来说是一本畅销书。Lol没有启用的属性,应该是.disabled=false。@Barmar谢谢,我在使用actionscript的知识,我应该检查一下。不管怎样,它已经修好了。我会试试这个。这看起来是最简单的路线,不必认真改造我的整个身体。尽管如此,我还是会研究jQuery,因为越来越明显的是,它在某个时候是不可避免的?我的意思是,我熟悉Javascript,而且我知道我使用的表单验证是在头脑中进行的。我的意思是,我不想让人觉得我完全不知所措,但我用表单提供者生成了很多表单,这一切都是为了我。对我来说,我一直对网页设计感兴趣,并通过自己学到了很多东西。我只知道还有很多东西要学。所以,如果我听起来好像不知道自己在做什么,我很抱歉,但至少我愿意学习。在看了那个在线示例后,我发现那里会有一个巨大的问题。如果我使用复选框输入,复选框将被禁用。除此之外,所有已禁用的现有字段将变为已启用,而已启用的字段将变为已禁用。所以,这段代码有点适得其反,因为它仍然存在同样的问题,但是现在所有禁用的字段都被启用了,以前启用的字段都被禁用了。我试图做的是只启用当前禁用的字段,然后重新启用。例如,应重新启用“额外电话号码”字段或“额外项目号码”。当我使用该代码时,它禁用了所有已启用的字段,如FirstName、LastName等,并重新启用了所有已禁用的字段
d字段,如spair电话号码、复选框和项目编号详细信息~我根据您的表单制作了一个示例,单击“启用”按钮后,它将启用所有输入、选择、文本区域和复选框字段,请查看更新的示例:@GenoJ如果您想要答案,您必须接受它: