2013-04-10 2 views
0

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

код, который получает идентификатор от кнопки нажал

$(".detail-view button").on("click", function() { 
     var detailID = $(this).attr('id'); 

код, который проверяет идентификатор не существует

function itemExists() { 
    $("input#lunchorder_item_entry_id").each(function() { 
     existingID = $(this).val(); 

     if(detailID == existingID) { 
      alert("You have already added this item. If you want to change item details, please remove the item and re-add it to your cart. Thank You!"); 
     } else { 

     } 
    }); 
} 

Этот вопрос у меня это работает только часть времени, если у кого есть предложение о лучшем способе сделать это Я уверен, что это не лучший способ достичь моей цели. Спасибо!

+2

Существует проблема охвата, 'detailID' не является глобальной переменной в коде. В контексте функции 'itemExists', это – undefined

+0

изменить' $ (this) .attr ('id'); 'to' this.id' таким образом вы сохраните' this', который будет преобразован в объект jQuery и доступ к атрибуту 'id' напрямую, а не к нему еще к одной функции. – fernandosavio

+0

Хорошо, я должен упомянуть, что функция' itemExists' находится внутри моей функции щелчка. – philecker

ответ

0

detailID не отображается в вашей функции itemExists(), либо делает его глобальным, либо передает его функции.

itemExists(detailID){ 
    // if(detailID == existingID) { 
} 

Все это должно выглядеть как этот

$(".detail-view button").on("click", function() { 
     var detailID = $(this).attr('id'); 
     itemExists(detailID); 
}); 
function itemExists(detailID) { 
    $("input#lunchorder_item_entry_id").each(function() { 
      var existingID = $(this).val(); 
      if(detailID == existingID) { 
       alert("You have already added this item. If you want to change item details, please remove the item and re-add it to your cart. Thank You!"); 
      } else { 

      } 
    }); 
} 
+0

Это действительно не исправляет мою проблему, потому что она по-прежнему позволяет вещам запускать другое. Я думаю, что действительно то, что мне нужно, это способ поставить каждое значение и сравнить с массивом. – philecker

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