javascript - 如果单击按钮,如何清除我的输入,同时如果输入为空,如何使按钮不可点击?
问题描述
我想创建一个简单的聊天,但不知道如何在单击按钮时清除我的输入,同时如果输入为空则使按钮不可单击。我就是这样做的,但它不起作用。
function ctrlButton() {
btn.disabled = this.value.trim().length === 0;
}
text.addEventListener('input', ctrlButton, false);
ctrlButton.call(text);
$('#btn').on('click', function(e) {
e.preventDefault();
var val = $('#text').val();
if (val.length >= 1) {
$('#text').val("");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="sendCtrls">
<input type="text" autocomplete="off" placeholder="Your message is here" id='text'>
<button class="button button1" id="btn">Send</button>
</div>
解决方案
您所做的一切都很好,您只需要 btn.disabled =true;
在点击事件中添加。
function ctrlButton() {
btn.disabled = this.value.trim().length === 0;
}
text.addEventListener('input', ctrlButton, false);
ctrlButton.call(text);
$('#btn').on('click', function(e) {
e.preventDefault();
var val = $('#text').val();
if (val.length >= 1) {
$('#text').val("");
btn.disabled =true;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="sendCtrls">
<input type="text" autocomplete="off" placeholder="Your message is here" id='text'>
<button class="button button1" id="btn">Send</button>
</div>
更好的版本
$("#text").on("input propertychange paste",function(){
debugger;
if($(this).val()===''){
$('#btn').attr('disabled',true);
}else{
$('#btn').removeAttr('disabled');
}
});
$('#btn').on('click', function(e) {
e.preventDefault();
var val = $('#text').val();
if (val.length >= 1) {
$('#text').val("");
$('#btn').attr('disabled',true);
}
});
$('#btn').attr('disabled',true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sendCtrls">
<input type="text" autocomplete="off" placeholder="Your message is here" id='text'>
<button class="button button1" id="btn">Send</button>
</div>
推荐阅读
- react-native - 带有 react native 和 APK 的 MirageJS
- bash - 如何将非交互式参数传递到使用“读取”的 bash 文件中?
- python - Selenium WebDriverException 当 self.driver_.get("http://www.stockbroking.com.my")
- typescript - 我正在寻找一个`PickOptional
` 通用 - amazon-web-services - SNS DwellTimeMs 闲置一段时间后为高
- python - 您如何自动滚动 Instagram DM?
- c# - C#比较存储在XML文件中的两个日期时间
- node.js - NodeJs:批量插入到 SQL Server 一对多
- html - 点击时的css动画播放状态
- amazon-web-services - 用户登录 AWS Cognito 后如何解析 JWT 令牌