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

时间:2015-02-09 10:00:40

标签: javascript jquery radio-button

我的注册表单上有一段代码存在问题。用户即将选择帐户类型。 (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

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

有没有人对此问题有任何见解?

1 个答案:

答案 0 :(得分:0)

改变这个:

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

到此:

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

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

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


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
    }
}