在单选按钮更改时向 DIV 中的输入添加必需属性

Adding Required Attribute to Inputs in DIV On Radio Button Change

我的注册表单上的一段代码有问题。用户即将 select 帐户类型。 (1 和 2)更改表单上所需的字段。

我已将必填字段包装在 div 中以便于访问它们,但是我在向输入添加必填属性时遇到问题。

function changeAccount(input)
{
    var selected = $(input).data("type");

    if (selected == "1")
    {
        $('#at-1-inputs').slideDown(500);
        $('#at-2-inputs').slideUp(500);

        $('#at-2-inputs').find('input').each(function() 
        {
            $(this).removeAttr('required');
        });
        $('#at-1-inputs').find('input').each(function() 
        {
            $(this).addAttr('required');
        });
    }
    else
    {
        // SAME AS ABOVE IN REVERSE
    }
}

但是每当我更改单选按钮时,在我的 JS 控制台中我都会收到

Uncaught TypeError: undefined is not a function

我已经检查过,单击单选按钮时肯定会调用该函数。

有没有人对这个问题有任何见解?

改变这个:

$(this).addAttr('required');

对此:

$(this).attr('required', 'required'); 

$(this).prop('required', true);

.addAttr() 在 jQuery 中不可用。您应该使用 .attr().prop() 来设置 attribute/property.


function changeAccount(input)
{
    var selected = $(input).data("type");

    if (selected == "1")
    {
        $('#at-1-inputs').slideDown(500);
        $('#at-2-inputs').slideUp(500);

        $('#at-2-inputs').find('input').each(function() 
        {
            $(this).prop('required', false); // <----use .prop() instead
        });
        $('#at-1-inputs').find('input').each(function() 
        {
            $(this).prop('required', true); //<-----use .prop() instead
        });
    }
    else
    {
        // SAME AS ABOVE IN REVERSE
    }
}