javascript - 如何选择多个输入字段并删除所需的属性?

标签 javascript jquery html

我在选择多个输入字段并删除所需属性时遇到问题。 我使用 Php/Symfony3 并在一页中创建了多个表单。这两种形式都有效,并且它们将正确的信息发送回客户。

表单称为 shippingAddress 和 billingAddress,但是当用户说这两个表单相同时,填写两个表单是没有用的。所以我决定创建一段代码将所有数据设置为空(来自 billingAddress)并将其发送回客户端。工作完美!

现在是问题所在,因为我想要一些必填字段,本地址不相同时他们需要填写这些字段。它不会发送表单,因为它表示某些输入字段尚未归档。

我创建了一些示例,但它看起来不太好。有没有更好的方法来实现相同的结果? 并非所有字段都是必需的

编辑: 忘记了我问题的重点,需要切换所需的选项。

1

    $(document).ready(function(){
            $("#form_check").click(function(){
                $("#form_billingAddress").fadeToggle();
                $("#form_billingAddress_firstName").removeAttr('required');
                $("#form_billingAddress_lastName").removeAttr('required');
                $("#form_billingAddress_email").removeAttr('required');
                $("#form_billingAddress_streetName").removeAttr('required');
                $("#form_billingAddress_streetNumber").removeAttr('required');
                $("#form_billingAddress_city").removeAttr('required');
                $("#form_billingAddress_pOBox").removeAttr('required');
                $("#form_billingAddress_phone").removeAttr('required');
            });
        });
#2
        jQuery(document).ready(function($){
            $("#form_check").on("click",function(){
                $("#form_billingAddress").fadeToggle();
                $("#form_billingAddress_firstName, " +
                    "#form_billingAddress_lastName, " +
                    "#form_billingAddress_email, " +
                    "#form_billingAddress_streetName, " +
                    "#form_billingAddress_streetNumber, " +
                    "#form_billingAddress_city, " +
                    "#form_billingAddress_pOBox, " +
                    "#form_billingAddress_phone").removeAttr('required');
            });
        });

提前致谢!

最佳答案

您可以在 jQuery 中使用 CSS3 选择器。 W3schools 上的选择器文档.

jQuery(document).ready(function($){
    $("#form_check").on("click",function(){
        $("#form_billingAddress").fadeToggle();
        $("input[id^='form_billingAddress_']").removeAttr('required'); // the tick
    });
});

带开关:

var required = true;
jQuery(document).ready(function($){
    $("#form_check").on("click",function(){
        $("#form_billingAddress").fadeToggle();
        if(required){
            $("input[id^='form_billingAddress_']").removeAttr('required');
        }else{
            $("input[id^='form_billingAddress_']").attr('required', true);
        }
        required = !required;
    });
});

使用变量比检查是否需要元素更快。这就是我选择它的原因。

编辑:这样做会更好:

var required = true;
jQuery(document).ready(function($){
    $("#form_check").on("click",function(){
        $("#form_billingAddress").fadeToggle();
        $("input[id^='form_billingAddress_']").attr('required',required);
        required = !required;
    });
});

关于javascript - 如何选择多个输入字段并删除所需的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278237/

相关文章:

php - 我只想用 PHP 更新一个 MySQL 行

javascript - 了解请求动画框架

javascript - 制表符表无法正确查看

jquery - glDatePicker 以渐进的月份显示多个日历

php - 数据表:根据数据库值隐藏列

html - 两个固定元素上的 z-index 不起作用

javascript - 如何使用 angularJs 在页面中显示数组数据

javascript - Google Apps 脚本 - UiApp ServerHandler 回调函数 - 值未定义

jquery - 了解使用 css3 和 jquery 构建滑动/滑动网络应用程序

c++ - 使用 qt + qprinter 将工作 url 添加到 pdf