Заменить содержимое, если вход имеет значение

0

Когда скрытый ввод имеет значение, содержащее буквы "LO", я хочу заменить кнопку внутри формы каким-либо другим html.

HTML:

<input type="hidden" name="LO123456" id="hiddenCode" value="LO123456" />
<input type="text" name="quantity" id="formProductQuantity" value="1" />
<a class="button green" href="#" onclick="$('#form').submit(); return false;">Add to cart</a>

Таким образом, в приведенном выше примере скрытое поле имеет в нем "LO", поэтому как я могу заменить кнопку

<a class="button green" href="some.html">More information</a>

То, что я пробовал:

if ($( "input[value*='LO']" ).find('.button').replaceWith('<a class="button green" href="some.html">More information</a>'));

Это не работает, потому что он заменяет кнопки без "LO" в скрытом поле.

Любая помощь очень ценится!

ОБНОВЛЕНО

Я обновил код, потому что есть другое поле ввода, о котором я не упоминал!

  • 0
    Вы вообще не нуждаетесь в операторе if - это не оператор.
Теги:

3 ответа

2

.find('.button') в .next('.button')

.find()= найти элемент внутри этого элемента

.next()= найти элемент рядом с этим элементом


Используйте $( "input[value^='LO']") (ввод начинается с LO)


Вам не нужно использовать if else statement


Добавить :hidden для большей фокусировки

или используйте свой идентификатор ввода hiddenCode (если вы уверены, что это уникальный идентификатор)


В заключение :

var newButton = '<a class="button green" href="some.html">More information</a>';
$("input:hidden[value^='LO']").next('.button').replaceWith(newButton);

Использование идентификатора

var newButton = '<a class="button green" href="some.html">More information</a>';
$("#hiddenCode").next('.button').replaceWith(newButton);
  • 0
    Спасибо за ваше быстрое и полезное объяснение. К сожалению, ваш код не работает. Я забыл упомянуть, что перед кнопкой есть еще одно поле ввода. Поэтому «следующий» не работает ??
  • 0
    .next().next('.button') ? @JaapVermoolen
0

Оператор if не требуется: if ($ ("input [value * = 'LO']")....

Вам нужно следующее вместо поиска:

$( "input[value^='LO']" ).next('.button').replaceWith('<a class="button green" href="some.html">More information</a>');

Следующий поиск следующего брата, поиск поисков потомков.

0

Используйте что-то вроде:

var v = $('#hiddenCode').val();
if (v && v.indexOf('LO') > -1) {
  $('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню