需要创建一个仅接受 a-z、A-Z 和空格中的字母的输入元素

Need to Create an input element that takes only letters from a-z, A-Z and space

提问人:Pranav 提问时间:9/9/2023 最后编辑:BarmarPranav 更新时间:9/9/2023 访问量:80

问:

在页面上创建一个带有占位符“输入您的姓名”和 HTML 内页面上的 H2 标题。 此输入元素的用途是输入用户名,因此它应该只输入。 来自 a-z、A-Z 和空格的字母(不应检测到所有其他字符)。 每当用户输入其名称时,其输入都应在标题中动态可见。 [请注意,除了允许的字符外,标题中不应显示其他字符]

HTML CODE 内部正文

<h2></h2>
    <input placeholder="Enter your name" />

JavaScript 代码

let input = document.querySelector("input");
let h2 = document.querySelector("h2");

input.addEventListener("input",function(){
    console.log(input.value);
    h2.innerText=input.value;
});
javascript dom-events domdocument

评论

0赞 Barmar 9/9/2023
欢迎来到 Stack Overflow!如何向有家庭作业问题的学生提出家庭作业问题公开信
0赞 Barmar 9/9/2023
您需要添加检查输入的字符的尝试。我们不会为你做这件事,练习的重点是让你弄清楚。
0赞 Community 9/9/2023
请编辑问题,将其限制在特定问题上,并具有足够的细节以确定适当的答案。

答:

0赞 Alexander Nenashev 9/9/2023 #1

使用 event 并测试是否与允许的字符匹配。如果没有,请调用以取消输入的更改:beforeinputEvent::dataEvent::preventDefault()

let input = document.querySelector("input");

input.addEventListener("beforeinput", e => /^[A-Za-z ]+$/.test(e.data) || e.preventDefault());
<input placeholder="Enter your name" />