2013-10-08 3 views
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' - это не-op. –

ответ

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); 

Использование ID

var newButton = '<a class="button green" href="some.html">More information</a>'; 
$("#hiddenCode").next('.button').replaceWith(newButton); 
+0

Thx для вашего быстрого и полезного объяснения. К сожалению, ваш код не работает. Я забыл упомянуть, что перед кнопкой есть другое поле ввода. Поэтому «следующий» не работает? – Meules

+0

'.next(). Next ('. Button')'? @JaapVermoolen – l2aelba

0

использовать что-то вроде:

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

если заявление не требуется в: если ($ ("входной [значение * = 'LO']"). ...

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

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

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

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