如果输入有值,则替换内容

时间:2013-10-08 19:21:17

标签: jquery

当隐藏输入的值包含字母“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”的按钮。

任何帮助都非常感谢!

已更新

我已经更新了代码,因为还有一个我没有提到的输入字段!

3 个答案:

答案 0 :(得分:2)

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

.find() =在此元素中找到元素

.next() =查找此元素旁边的元素


使用$( "input[value^='LO']")(输入以LO开头)


您无需使用if else statement


添加:hidden以获得更多关注

或使用您的输入ID hiddenCode (如果您确定它是唯一ID)


最后:

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

答案 1 :(得分:0)

使用类似:

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

答案 2 :(得分:0)

if:$(“input [value * ='LO']”)....

你需要接下来而不是找到:

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

接下来搜索下一个兄弟,找到对后代的搜索。