我有一个textarea和一个按钮.有两个类buttonEnabled和buttonDisabled.我只想在textarea中有一些文本时应用buttonEnabled.因此,如果用户在文本区域中键入内容,则该按钮将显示为启用状态,并且当他通过选择并剪切或按退格键清除所有文本时.我希望我的按钮显示为禁用状态.我也只想用javascript做这个,由于某种原因不想使用jQuery.
解决方法:
目前,您可以确定立即获取输入内容中的所有更改的唯一方法是对其进行轮询.这是因为有很多可能的方式可以编辑输入而不生成键输入或立即更改事件.除了剪切和粘贴外,还有拖放,撤消/重做,自动完成,拼写检查器更改…
HTML5提出了一个输入事件,该事件将在所有这种情况下触发,但不幸的是,还没有浏览器支持.
当然,您可以通过更快地检查事件的常见情况来备份轮询.例如:
function watchInput(input, callback) {
var value= input.value;
function check() {
if (input.value!==value)
callback.call(input, value);
value= input.value;
}
input.onchange=input.onkeyup= check;
setInterval(check, 400);
};
watchInput(document.getElementById('mytextarea', function(oldvalue) {
document.getElementById('mybutton').className= this.value===''? 'buttonDisabled' : 'buttonEnabled';
});
标签:textarea,html,javascript 来源: https://codeday.me/bug/20191023/1915966.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。