我有这段代码
$("#tag_price").on('change', function(event) {
if ($(this).val() == -2)
$('<input type="text" class="ipt" id="customprice" name="customPrice" />').insertAfter(this),
$('<p id="customprice" class="semi_margin_top">Introduce el precio exacto</p>').insertAfter(this);
else if ($(this).val() !== -2)
$('#customprice').hide;
});
第一部分正在工作,当输入值为-2时,显示第二个输入。但是当我选择另一个值时,我希望它消失,因为如果没有,第二个输入将永远保留。
我希望第二个输入仅在选择值-2时显示,并在选择另一个值时消失。我以为我可以通过Jquery实现这一点并隐藏,但我不会工作。
谢谢!
答案 0 :(得分:1)
您正在寻找的hide()
的必然结果是show()
。您的代码还有一些其他问题需要处理。
首先,您在if
语句周围缺少{},因此else if
应该抛出错误,因为$('<p...')
行不在if。
其次,由于没有第三种选择,因此不需要else if
。值为“-2”或不是。
现在,每当有人选择“-2”项时,你就会附加一个新元素,这不是正确的方法。检查这些元素是否已经存在于DOM中,只有在它们不存在时才添加它们。如果是,请拨打show()
。
if ($(this).val() === -2) {
$('#customprice').show();
}