我有一个带有文本框和按钮的表单,如下所示:
<input name="search" type="text" />
<button class="close" id="markclick" style="position:absolute"></button>
<script>
$('#markclick').click(function()
{
$('.name').val('');
}
</script>
当我点击按钮时,它正在清除文本框,但有一点是,如何在文本框中键入文本时才启用按钮? 有什么输入?
答案 0 :(得分:1)
即使用户在输入框中粘贴文本,这也应该有用。
$(document).ready(function() {
$('#searchBox').on("change keyup paste", function() {
$('.close').toggle($('#searchBox').val() != '');
});
$('#markClick').click(function() {
$('#searchBox').val('').trigger('change');
});
})
.close {
position: absolute;
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="searchBox" name="search" type="text" />
<button class="close" id="markClick">X</button>
答案 1 :(得分:0)
$('[name=search]').on('keyup',function(){
($('[name=search]').val().trim().length == 0 )?
$('#markclick').attr('disabled','disabled') :
$('#markclick').removeAttr('disabled');
}).trigger('keyup');
$('#markclick').on('click',function(){
$('[name=search]').val('').trigger('keyup');
});
答案 2 :(得分:0)
使用.toggle
来播放元素和display
事件的input
属性,以处理输入值的更改。
.toggle(Boolean)
显示或隐藏匹配的元素。
当
input
或<input>
元素的值发生变化时,会同步触发DOM<textarea>
事件。[Ref]
注意: button
最初应为display:none
。或使用.trigger('input')
来调用input
处理程序。
$('[name="search"]').on('input', function() {
$('#markclick').toggle(!!this.value); //return true if value!=''
});
$('#markclick').on('click', function() {
$('[name="search"]').val('');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input name="search" type="text" />
<br>
<button class="close" id="markclick" style="position:absolute;display:none">Clear</button>