如果输入文本为空,如何使用jQuery隐藏textarea?
我的尝试:
jQuery(document).chnage(function($) {
var value=$.trim($('input').val());
if (value.length < 0) {
$('textarea[name="your-message"]').hide();
}
});
答案 0 :(得分:3)
使用keypress
或html5 input
事件代替输入元素的change事件,并使用jQuery中的toggle()
方法切换。
// bind input event handler
$('input').on('input', function() {
// toggle visible state based on value
$('textarea[name="your-message"]').toggle(this.value.trim() !== '');
});
&#13;
textarea {
display: none
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<textarea name="your-message"></textarea>
&#13;
代码中的问题:
$
作为回调参数,它在回调(而不是jQuery)中保存event
对象。chnage
应为change
(我认为这是一个错字)。答案 1 :(得分:0)
您真正的问题是,您使用其他值重新定义$
:
jQuery(document).change(function($) {
// remove this bad boy -------^
// $ is jQuery.Event object here
});
事件处理程序的第一个参数是jQuery.Event对象,而不是jQuery本身。
从参数列表中删除$
并使用value.length == 0
它将起作用。
答案 2 :(得分:0)
试试这可能对您有所帮助
$('#txtID').on('input', function() {
if(this.value.trim() !== ''){
$('#txtID').show();
}else{
$('#txtID').hide();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<textarea rows="4" cols="50" id="txtID"></textarea>
&#13;