2009-05-28 2 views
0

Я использую текстовые поля, чтобы позволить пользователям изменять количество на веб-сайте электронной коммерции, например, http://nordschleife.metaforix.net/118/118/index.php/sony.htmlPHP генерироваться операции текстовое поле с Javascript

Есть две проблемы, которые, я надеюсь, чтобы решить:

  1. В представлении каталога (например, в предыдущем URL) стрелки вверх и вниз работают только для 1-го текстового поля. Все последующие записи не работают.

  2. После щелчка по стрелке страница идет вверх, и это не то, что я намерен.

PHP используется для создания записей, jQuery используется для действий.

Исходный файл для страницы здесь http://www.mediafire.com/?sharekey=9df4aef22a728de5c2b435915e8821d7e04e75f6e8ebb871

+1

Попробуйте pastebin (или аналогичный) для вашего исходного кода в будущем. – garrow

ответ

2

1: Вместо того, чтобы регистрировать событие для каждой стрелки отдельно, вы можете сделать только один скрипт для всех них. Сделайте стрелку выглядеть следующим образом:

<a id="upImg_705" ... rel="qty_705" class="uparrow"> 
<input id="qty_705" class="input-text qty" type="text" value="1" maxlength="12" name="qty"/> 
<a id="downImg_705" ... rel="qty_705" class="downarrow"> 

затем зарегистрировать эти функции в качестве клика обработчиков событий:

$('.uparrow').live("click", function() { 
    var rel = $(this).attr('rel'); 
    var textbox = document.getElementById(rel); 
    textbox.value = parseInt(textbox.value)+1; 
    return false; 
} 
$('.downarrow').live("click", function() { 
    var rel = $(this).attr('rel'); 
    var textbox = document.getElementById(rel); 
    textbox.value = parseInt(textbox.value)-1; 
    return false; 
} 

2: Для того, чтобы предотвратить идем к началу использования страницы href="javascript:void(0);" вместо href="#" в ваших ссылках , В качестве альтернативы ваш метод onclick может возвращать значение false, чтобы предотвратить действие по умолчанию (т. Е. Изменение местоположения вашей веб-страницы).

+0

Спасибо, что абсолютно сработал! – segfault

0
  1. Использование JQuery-х live() создавать события, которые будут повторно применены, когда страница изменяется с помощью обновления AJAX.
  2. event.preventDefault() остановит это.
+0

оба не работают в моем случае – segfault

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