添加自定义数据属性以进行验证时的基础错误

时间:2015-01-23 10:39:40

标签: jquery zurb-foundation

以下脚本运行正常,但基础会返回错误:

$("[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');
});

错误来自这一行:

$('.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>

1 个答案:

答案 0 :(得分:0)

我认为它可能是选择器。查看html,yourPayment类没有元素。如果要添加和删除相同的元素,则应使用相同的选择器。 &#34; #payWithNewCard选择&#34;

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

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

$('#payWithNewCard select').data('abide-validator', 'checkexpiry');

这将删除并添加属性&#39; data-abide-validator&#39;

对不起所有的编辑 - 现在应该很好。