связать числовое поле со скрытым div

0

У меня есть набор полей ввода чисел, помеченных как small & medium.., так и набор div с меткой small и medium. В моем проекте на самом деле будет больше размеров, чем просто маленький и средний. Когда вы добавляете число в поле ввода небольшого числа, вводится текстовый ввод. После того, как div помечен как маленький. Когда вы вычитаете число из поля ввода небольшого числа, поле ввода текста, которое было недавно добавлено, удаляется.

Если небольшое числовое поле равно 0, я хочу

<div class="name-number-field-container" data-size="Small"> 

быть скрытым, если небольшое числовое поле больше 0, я хочу, чтобы

<div class="name-number-field-container" data-size="Small"> 

показывать. То же самое относится к среде.

http://jsfiddle.net/7PhJZ/63/

скрытые и показанные правильно, но они не связаны с их надлежащим размером и продуктом. all class= "name-number-field-container" показать

я попробовал это:

$('.product-quantity').on('change', function(){
    var select = $(".name-number-field-container").closest('[id^="product"]').find('[data-size="' + this.name + '"]')
    if($(this).val()>=1){
        $(select).show();
    } else {
        $(select).hide();
    }
});
Теги:

3 ответа

2
Лучший ответ

Это то, что вы имели в виду?

http://jsfiddle.net/9kXLC/4/

Замените код show/hide следующим:

$('.product-quantity').on('change', function () {
    var select = ".name-number-field-container[data-size=" + $(this).attr('name') + ']'
    if ($(this).val() >= 1) {
        $(this).parents('div[id^=product-]').find(select).show();
    } else {
        $(this).parents('div[id^=product-]').find(select).hide();
    }
});
  • 0
    это правильно, но это все еще показывает маленькую этикетку в другом продукте. номер поля теперь связан с меткой размера, но не связан с продуктом
  • 0
    Хорошо, получил лучший ответ сейчас. Не нужно редактировать HTML либо.
Показать ещё 4 комментария
1

http://jsfiddle.net/fenderistic/Q4bFB/

В принципе, у вас есть настраиваемое name для каждого product-quantity которое коррелирует с конкретным data-size name-number-field-container. Я должен был добавить атрибут data-output-id чтобы различать разные div. Таким образом, вы используете эту информацию, чтобы скрыть или показать коррелирующие div.

$('.product-quantity').on('change', function () {
    if ($(this).val() >= 1) {
        $(".name-number-field-container[data-size='" + $(this).attr("name") + "'][data-output-id='" + $(this).attr("data-product-id") + "']").show();
    } else {
        $(".name-number-field-container[data-size='" + $(this).attr("name") + "'][data-output-id='" + $(this).attr("data-product-id") + "']").hide();
    }
});
  • 0
    номер поля теперь связан с меткой размера, но не связан с продуктом
  • 0
    @anmaree Хорошо, я обновил код, мне пришлось добавить еще один пользовательский атрибут, чтобы делать то, что вы хотели.
Показать ещё 4 комментария
0

Я просто добавил класс для вашей скрипки, который явно задал ширину для входного класса.name-поля следующим образом:.name-field {width: 50px;} и получил результаты, которые вы искали.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню