JavaScript问题:第一个Prompt不合法时阻止第二个Prompt弹出
问题解决方法
核心问题是第二个prompt没有做条件判断,无论第一个输入是否合法都会执行。我们需要先校验第一个输入的结果,只有符合要求时才弹出第二个输入框。
修改后的代码如下:
function formatNaam(naam) { return naam.charAt(0).toUpperCase() + naam.slice(1); } let naam1 = prompt("geef je voornaam"); let naam2; let aangepast; // 校验第一个输入的合法性 if (naam1 === "") { aangepast = "niks is ingevuld"; } else if (naam1 === null) { aangepast = "je hebt geanulleerd"; } else if (naam1.length < 2) { aangepast = "Te weinig ingevuld"; } else { // 只有第一个输入合法时,才弹出第二个输入框 naam2 = prompt("Geef jouw achternaam"); // 格式化名字,若需要处理姓氏可在此扩展 aangepast = formatNaam(naam1); // 可选:加上格式化后的姓氏 // if (naam2) aangepast += " " + formatNaam(naam2); } document.write(`<p>Test ${aangepast}</p>`);
关键改动说明
- 将第二个
prompt放入条件分支中,仅当第一个输入满足要求(非空、未取消、长度≥2)时才触发。 - 原函数
namen中未使用achternaam参数,拆分出单独的formatNaam函数负责名字格式化,逻辑更清晰。 - 用
naam1.length < 2替代原有的voornaam == voornaam.substring(0,2)判断,更直观地检查输入长度是否过短。
内容的提问来源于stack exchange,提问作者Kenny
相关产品推荐
相关产品推荐

