Jquery 为验证添加自定义数据属性时的基础错误 下面的脚本工作正常,但是基金会返回一个错误: $("[data-checkbox]").on('click', function(){ $("#payWithNewCard input").removeAttr('required'); $("#payWithNewCard .columns").removeClass('form-group'); $('.yourPayment .sel-box').removeData('abide-validator'); }); $('#paymentMethodNewCard').on('click', function(){ $('.yourPayment .sel-box').data('abide-validator', 'checkexpiry'); $("#payWithNewCard input").prop('required', true); $(".logged-in-saved-card").addClass('form-group'); });

Jquery 为验证添加自定义数据属性时的基础错误 下面的脚本工作正常,但是基金会返回一个错误: $("[data-checkbox]").on('click', function(){ $("#payWithNewCard input").removeAttr('required'); $("#payWithNewCard .columns").removeClass('form-group'); $('.yourPayment .sel-box').removeData('abide-validator'); }); $('#paymentMethodNewCard').on('click', function(){ $('.yourPayment .sel-box').data('abide-validator', 'checkexpiry'); $("#payWithNewCard input").prop('required', true); $(".logged-in-saved-card").addClass('form-group'); });,jquery,zurb-foundation,Jquery,Zurb Foundation,错误来自以下行: $('.yourPayment .sel-box').attr('data-abide-validator', 'checkexpiry'); 上面写着: 未捕获的TypeError:无法读取未定义的属性“apply” 我需要切换该数据属性,因为在某些情况下,我只需要验证表单的某些部分,而不是全部 removeAttr可以正常工作,但在添加它时无法正常工作 <div class="small-4 columns expiryDateWrapper">

错误来自以下行:

$('.yourPayment .sel-box').attr('data-abide-validator', 'checkexpiry');
上面写着:

未捕获的TypeError:无法读取未定义的属性“apply”

我需要切换该数据属性,因为在某些情况下,我只需要验证表单的某些部分,而不是全部

removeAttr可以正常工作,但在添加它时无法正常工作

        <div class="small-4 columns expiryDateWrapper">
            <label>{{ 'EXPIRYDATE'|trans }} *</label>
            <select class="sel-box month" name="ccExpirationMonth" data-abide-validator="checkExpiry">
                <option value="">MM</option>
                {% for month in 1..12 %}
                    <option value="{{ "%02d"|format(month) }}">{{ "%02d"|format(month) }}</option>
                {% endfor %}
            </select>
            <select class="sel-box year" name="ccExpirationYear" data-abide-validator="checkExpiry">
                <option value="">YYYY</option>
                {% set thisYear = date()|date("Y") %}
                {% for year in thisYear..thisYear+Booking.CREDIT_CARD_EXPIRES_YEARS_AHEAD %}
                    <option value="{{ year }}">{{ year }}</option>
                {% endfor %}
            </select>
        </div>

我想可能是选择器。查看html,yourPayment类中没有任何元素。如果要从同一元素添加和删除,则应使用相同的选择器。使用新卡选择支付

如果使用数据属性,则更容易:

$("#payWithNewCard select").removeData('abide-validator');

$('#payWithNewCard select').data('abide-validator', 'checkexpiry');
这将删除并添加属性“数据验证程序”


抱歉,所有的编辑-现在应该很好了。

看起来不错。。你的html是什么?它添加了它,但不再删除它,我已经确定选择器是正确的…它只是“不再删除它,但不再抛出错误。据我所知,如果您查看元素,删除实际上不会从标记中删除它,但它将不再存在,因此检查它的唯一方法是尝试使用$”再次获取它。yourPayment.sel框'。数据“验证程序”;