如何解决如果在textarea中键入空格,则“生成”按钮将被禁用
我正在使用带有表单的JS构建系统,以便除非用户在文本框中键入内容,否则启用提交按钮,否则它将被禁用,但这是问题所在:当用户键入空格时,按钮已启用。我如何才能使该按钮除非用户键入字母才能启用?这是我正在使用的代码:
function enable() {
if (document.getElementById("textsend").value === "") {
document.getElementById('main-submit-post').disabled = true;
document.getElementById('main-submit-post').style.filter = "brightness(50%)";
document.getElementById('main-submit-post').style.cursor = "auto";
} else {
document.getElementById('main-submit-post').disabled = false;
document.getElementById('main-submit-post').style.filter = "brightness(100%)";
document.getElementById('main-submit-post').style.cursor = "pointer";
}
}
<textarea name="content" id="textsend" onkeyup="enable()" placeholder="You can type here..."></textarea>
<hr>
<button type="submit" id="main-submit-post" disabled>Share</button>
如您所见,如果仅键入空格,该按钮将被启用。我如何才能使它只有在用户键入字母开头时才启用?
解决方法
^字符将正则表达式锚定到字符串的开头。
\ s匹配空格以外的单个字符。等效于[^ \ f \ n \ r \ t \ v \ u00a0 \ u1680 \ u2000- \ u200a \ u2028 \ u2029 \ u202f \ u205f \ u3000 \ ufeff]。例如,/ \ S \ w * /匹配“ foo bar”中的“ foo”。
\ d匹配任何数字(阿拉伯数字)。相当于[0-9]。例如,/ \ d /或/ [0-9] /匹配“ B2是套间号”中的“ 2”。
function enable() {
const mainSubmitPost =document.getElementById('main-submit-post');
const textSend = document.getElementById("textsend");
if (textSend.value === "" || textSend.value.match(/^\d/) || textSend.value.match(/^\s/) ) {
mainSubmitPost.disabled = true;
mainSubmitPost.style.filter = "brightness(50%)";
mainSubmitPost.style.cursor = "auto";
} else {
mainSubmitPost.disabled = false;
mainSubmitPost.style.filter = "brightness(100%)";
mainSubmitPost.style.cursor = "pointer";
}
}
<textarea name="content" id="textsend" onkeyup="enable()" placeholder="You can type here..."></textarea>
<hr>
<button type="submit" id="main-submit-post" disabled>Share</button>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。