Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2009, 15:26
Интересующийся
Отправить личное сообщение для Tinvul Посмотреть профиль Найти все сообщения от Tinvul
 
Регистрация: 13.07.2009
Сообщений: 15

Не считывается значение с поля input
Доброго времени суток!

есть следующий фрагмент кода
settings = $.extend({
clCountr: 'shs-count2',    
clTitle: 'shs-title',
    clPrice: 'shs-price',
    clLink: 'shs-link',
    clButton: 'shs-but',
    nameHidden: 'shs-id'
    
  }, options);

  return this.each(function(i){
    var co = $("input[name='"+settings.clCountr+"']:eq(0)",this).val();
    var parent = this;
    var sId = $("input[name='"+settings.nameHidden+"']:eq(0)",this).val();
    var sTitle = $("."+settings.clTitle+":eq(0)",this).text();
    var sPrice = $("."+settings.clPrice+":eq(0)",this).text();


в данном коде не могу считать информацию в переменую co...
обьясните пожалуйста почему????
ХТМЛ Фрагмент
<div class="shop-stuff"> 
  <div class="relative"> 
    <div class="shs-title">123123123</div> 
    <img src="" alt="" height="158" width="168" /> 
    <div>Цена: <span class="shs-price" id="stuff_47_price">123</span> руб.</div> 
    <div class="shs-descr"> 
      123123123123<br /> 
      <a href="index.php?id=47" class="shs-link">Подробнее &rsaquo;</a> 
    </div> 
    <input type="hidden" name="shs-id" value="47" /> 
    <input type="text" size="2" id="shs-count2" name="shs-count2" value="1" maxlength="3" /> 
    <div align="center"><button class="shs-but">В корзину</button></div> 
 
 
  </div> 
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2009, 18:14
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А что за JS-код, вырванный непонятно откуда? Приведите рабочий некорректно ведущий себя пример
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2009, 04:51
Интересующийся
Отправить личное сообщение для Tinvul Посмотреть профиль Найти все сообщения от Tinvul
 
Регистрация: 13.07.2009
Сообщений: 15

конкретный пример лежит на samou4ka.net

неработает samou4ka.net/assets/snippets/shopkeeper/shopkeeper.js
файл без изменений залью чуть позже если надо
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2009, 06:05
Интересующийся
Отправить личное сообщение для Tinvul Посмотреть профиль Найти все сообщения от Tinvul
 
Регистрация: 13.07.2009
Сообщений: 15

извиняюсь...я неправильно поставил вопрос..
есть
<input id="shs-count2" value="1" />

пытаюсь считать значение с этого поля
var co =  parseInt($('#shs-count2').val());


проблема в том что при изменение значения в поле. скрипт считывает значени которое стоит по умолчанию... а измененое не хочет....

увидеть можно на samou4ka.net
сам скрипт на samou4ka.net/assets/snippets/shopkeeper/shopkeeper.js

Последний раз редактировалось Tinvul, 19.09.2009 в 06:19. Причина: неправильно путь указал
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2009, 14:59
Аспирант
Отправить личное сообщение для Urfin Посмотреть профиль Найти все сообщения от Urfin
 
Регистрация: 22.07.2009
Сообщений: 85

Раз не можете считать измененное значение, это означает, что обработчик события привязан только к постраению DOM, то есть откликается на событие
$(document).ready(function(){})

Чтобы откликался на изменение, нужно инициализацию данного плагина повесить на событие change.
$('#shs-count2').change(function(){
   // инициализация плагина
});
Ответить с цитированием
  #6 (permalink)  
Старый 19.09.2009, 17:20
Интересующийся
Отправить личное сообщение для Tinvul Посмотреть профиль Найти все сообщения от Tinvul
 
Регистрация: 13.07.2009
Сообщений: 15

не реагирует на данное событие....
я уже научил его считывать его измененые параметры, НО у меня есть несколько этих полей с одинаковым айди...
если я не ошибаюсь то вот этот фрагмент отвечает за работу с массивом

$.fn.shopkeeper = function(options){

  settings = $.extend({
clCountr: 'shs-count2',    
clTitle: 'shs-title',
    clPrice: 'shs-price',
    clLink: 'shs-link',
    clButton: 'shs-but',
    nameHidden: 'shs-id'
    
  }, options);

  return this.each(function(i){

    var parent = this;
    var co =  parseInt($("input[name='"+settings.clCountr+"']:eq(0)",this).val());
    var sId = $("input[name='"+settings.nameHidden+"']:eq(0)",this).val();
    var sTitle = $("."+settings.clTitle+":eq(0)",this).text();
    var sPrice = $("."+settings.clPrice+":eq(0)",this).text();
    if($("a."+settings.clLink+":eq(0)",this).size() > 0 || $("input[name='"+settings.clLink+"']").size()>0){
      var sLink = $("a."+settings.clLink+":eq(0)",this).size() > 0
        ? $("a."+settings.clLink+":eq(0)",this).attr('href')
        : $("input[name='"+settings.clLink+"']:eq(0)",this).val();
    }else{
      var sLink = null;
    }
    $('button.'+settings.clButton+':eq(0)',this).click(function(){
      if(debug)
        alert(sId+' '+co+' '+sPrice+' '+sLink);
      $('select.addparam,input.addparam:checked',parent).each(function(){
        jQuery.additOpt(this);
      });
      toCart(sId,sTitle,sPrice,sLink,this, co, settings);
      return false;
    });
  });
  
}

он реагирует на загрузку страницы...
от следующей строчки я отказался
var co =  parseInt($("input[name='"+settings.clCountr+"']:eq(0)",this).val());

сделал считывание внутри вызова функции
toCart(sId,sTitle,sPrice,sLink,this, settings);

а точнее выглядит так
var count = parseInt($('#shs-count2').val());

и когда у меня несколько полей для ввода, то он считывает с первого, а не снужного....
но я незнаю как заставить считать нужный елемент, а не первый... есть смутные догадки что это надо как то передать в функцию скакого именно эелемента в массиве работать...
Ответить с цитированием
  #7 (permalink)  
Старый 19.09.2009, 17:27
Аспирант
Отправить личное сообщение для Urfin Посмотреть профиль Найти все сообщения от Urfin
 
Регистрация: 22.07.2009
Сообщений: 85

Одинаковых ID на странице быть не должно.
В этом наверно и проблема. Подцепляется первый элемент с найденным ID.
Ответить с цитированием
  #8 (permalink)  
Старый 19.09.2009, 19:03
Интересующийся
Отправить личное сообщение для Tinvul Посмотреть профиль Найти все сообщения от Tinvul
 
Регистрация: 13.07.2009
Сообщений: 15

Urfin, понимаете до моих изменений скрипт работал... но там поле input было в модальном окне при нажатии на копку заказов... не могли бы вы тогдать подсказать мне другой способ решения задачи данной? (надо вывести поля input)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
< input type=file > не попадают в $_FILES ce39 Элементы интерфейса 8 01.10.2009 15:33
Подгружаемые поля формы AlexJ AJAX и COMET 2 26.06.2009 18:04
Определение значение поля input/file sancho Общие вопросы Javascript 3 28.05.2009 12:42
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55