2012-02-17 2 views
0
$(function() { 
    $("#datepicker").datepicker({ 
     dateFormat: "dd-mm-yy", 
     minDate: -0 
    }); 
    $(".minus").click(function() { 
     var id = $(this).attr("id").substr(4); 
     var value = parseInt($("#value_" + id).val()); 
     if (value == 0) return false; 
     newval = parseInt(value) - 1; 
     $("#value_" + id).val(newval) 
    }); 
    $(".plus").click(function() { 
     var id = $(this).attr("id").substr(5); 
     var value = parseInt($("#value_" + id).val()); 
     newval = parseInt(value) + 1; 
     $("#value_" + id).val(newval) 
    }); 
    $(".value").keydown(function(event) { 
     // Allow only backspace and delete 
     if (event.keyCode == 46 || event.keyCode == 8) { 
      // let it happen 
     } else { 
      // Ensure that it is a number and stop the keypress 
      if (event.keyCode < 48 || event.keyCode > 57) { 
       event.preventDefault(); 
      } 
     } 
    }); 
});​ 

Это мой текущий код, однако он не работает здесь следующие я хочу:
У меня есть 20 полей ввода - и + кнопки все с diffrent счетчиком.
HTML пример:Jquery увеличить поле ввода значения

<tr> 
    <td><h4>Mozzarella met honing, tomaat en basilicum</h4></td> 
    <td width="100" valign="top">EUR 3,75</td> 
    <td width="150"> 
     <input type="hidden" name="naam_3" value="Kaas - Mozzarella met honing, tomaat en basilicum"> 
     <input type="hidden" name="prijs_3" value="3,75"> 
     <div class="minus" id="min_wit_3">-</div> 
     <input type="text" class="value" id="value_wit_3" name="aantal_3_wit" value="0"> 
     <div class="plus" id="plus_wit_3">+</div> 
     <div class="minus" id="min_bruin_3">-</div> 
     <input type="text" class="value" id="value_bruin_3" name="aantal_3_bruin" value="0"> 
     <div class="plus" id="plus_bruin_3">+</div> 
    </td> 
</tr> 

<tr> 
    <td>Boerenbrie</h4></td> 
    <td width="100" valign="top">EUR 4,00</td> 
    <td width="150"> 
     <input type="hidden" name="naam_4" value="Kaas - Boerenbrie"> 
     <input type="hidden" name="prijs_4" value="4"> 
     <div class="minus" id="min_wit_4">-</div> 
     <input type="text" class="value" id="value_wit_4" name="aantal_4_wit" value="0"> 
     <div class="plus" id="plus_wit_4">+</div> 
     <div class="minus" id="min_bruin_4">-</div> 
     <input type="text" class="value" id="value_bruin_4" name="aantal_4_bruin" value="0"> 
     <div class="plus" id="plus_bruin_4">+</div> 
    </td> 
</tr> 

Всякий раз, когда я нажмите кнопку + он должен быть 1, и когда я нажимаю снова он должен быть 2 и так далее.
Когда я нажимаю кнопку -, она делает обратную, но она не может опускаться ниже 0.
Надеюсь, кто-нибудь знает решение для этого. < бр />
Поэтому в основном я нужен 1 код для нескольких полей ввода

Сайт: http://www.verruklik.nl/bestelformulier/ Try и нажимайте кнопку происходит ничего +, в то время как де-сценарий кажется правильным.

+3

Пожалуйста, только создавать соответствующие разделы вашего кода. Публикация неформатированной стены кода на самом деле не позволяет людям помочь вам. –

+1

@Scoobler, если бы я мог вам порекомендовать, я бы это сделал. –

+0

Кроме того, постарайтесь быть более конкретными. Что вы пытаетесь сделать, чего не можете? Не ожидайте, что люди просто сделают все для вас. А http://jsfiddle.net/ было бы здорово. –

ответ

2

код размещен в вопросе, работает - причина, по которой скрипт не работает здесь связано с datepicker.

Проверьте код here с удаленным датой.
Проверьте код как отправленоhere не работает с datepicker.
Проверьте код, действующий с помощью datepicker hereОбратите внимание на добавленные ресурсы (слева выберите команду «Управление ресурсами»).

На вашем сайте, вы включили две версии JQuery UI 1.7.2 и 1.8.14 (строки 36 и 37) это могло вызвать конфликт и может разорвать JavaScript.

Существует еще одна ошибка на вашем сайте, который также может быть нарушение вещи:
Error: $("ul.sf-menu").supersubs is not a function
Source File: http://www.verruklik.nl/js/onLoad.js
Line: 1

Подсказка для поиска разрывов в коде, с помощью консоли браузеров, где это возможно.
Если вы используете Google Chrome, IE9 нажмите F12 или Firefox с веб-разработчиков расширений прессы CTRL+SHIFT+J

1

Вам нужно добавить условие к вашему обработчику кликов $(".minus"), чтобы проверить, сделает ли оно значение меньше нуля.

$(".minus").click(function() { 
    var id = $(this).attr("id").substr(4); 
    var value = parseInt($("#value_"+id).val()); 

    if (value == 0) 
     return false; 

    newval = parseInt(value) - 1; 
    if (newval < 0) 
     newval = 0; 

    $("#value_"+id).val(newval) 
}); 
+0

Это просто решает отрицательные суммы, спасибо за это. –

Смежные вопросы