условное изменение количества текстового поля с помощью jquery? - PullRequest
1 голос
/ 24 ноября 2011

У меня есть проблема, я работал над некоторым jquery, чтобы установить текстовое поле количества для отображения 25 или больше. Он проверяет, имеет ли персонализация формулировки пустую строку, если она не применяет количество 25, как, очевидно, его комплектное изделие и персонализируется.

Важнейшая часть комплекта изделий:

if (parseInt($("#kitProduct #Quantity").val()) < 25) {
    $("#kitProduct #Quantity").attr("value", "25");

Он знает, что это набор продуктов, потому что у меня есть div.id, обернутый вокруг страницы под названием Набор продуктов.

Моя проблема в том, что мне нужно переопределить этот код продукта для определенных продуктов. Я подумал, что лучший способ сделать это как исправление ошибок - это проверить содержимое div, например:

<div class="ProductNameText">Exclusive Handmade Box</div>

Если найдена эксклюзивная коробка ручной работы, то разрешите пользователю ввести количество 1 или более в текстовое поле.

Я пробовал следующий код:

quantity = $('div.ProductNameText').text().match(/Exclusive Handmade Box/g).length;
       if(quantity)
         {
          $("#kitProduct #Quantity").attr("value", quantity);
          $("#kitProduct #Quantity").keypress(function(){

          var quantity = parseInt($.trim($(this).val()));
          if( quantity < 1) {
             $(this).val('1');
          } else {
             $(this).val(quantity);
         }

Но это только когда-нибудь заставит 1. Я действительно потерян, я объяснил как можно лучше, и ниже приведен сокращенный пример страницы в jsfiddle.

Действительно надеюсь, что вы можете помочь?

Дополнительная информация:

В большинстве случаев продукты Kit определены в пакете xml, который применяется к продукту набора в разделе администратора. Тем не менее, у меня есть несколько продуктов, которые все еще являются продуктами, но не требуют 25, чтобы положить в количество.

В данный момент jquery проверяет текстовое поле, потому что, если пользователь добавляет персонализацию, это означает, что он хочет получить продукт в комплекте, следовательно, минимальное количество составляет 25.

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

, поэтому я смогу ввести 1-25 в поле без моего текущего кода, говорящего о том, что вы ввели менее 24, поэтому я собираюсь изменить его обратно на количество продукта min kit.

если вы попробуете jsfiddle, вы увидите, что он не позволит вам ввести значение скажем 3? вот в чем проблема.

http://jsfiddle.net/FB5MQ/3/

1 Ответ

0 голосов
/ 24 ноября 2011

Вы просто должны иметь переменный минимум в коде «критическая часть для комплекта»:

var minValue = 25;
if ($('div.ProductNameText').text().match(/Exclusive Handmade Box/)) {
    minValue = 1;
}

if (parseInt($("#kitProduct #Quantity").val(), 10) < minValue) {
    $("#kitProduct #Quantity").prop("value", minValue);
    // rest of code...
...