You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript onfocusout遇Uncaught TypeError及输入验证问题求助

问题分析与修复方案

问题1:输入合法值仍弹出错误提示

原因:条件判断逻辑错误,用了||(或)而非&&(与)。当输入DEALER时,sourcDealerId.value != "MARKET"为真,整个条件成立触发错误;输入MARKET同理。正确逻辑应为既不是DEALER也不是MARKET时才报错。

问题2&3:焦点未返回且控制台报错Uncaught TypeError: sourcDealerId.focus is not a function

原因:错误地将DOM元素变量sourcDealerId赋值为空字符串sourcDealerId = "",导致变量不再指向文本框节点,变成普通字符串后无法调用focus()方法。正确清空输入框的方式是设置value属性为空,而非覆盖变量本身。


修正后的完整代码

JavaScript代码

function onloadfunction() {
  alert("On Load!");
  var sourcDealerId = document.getElementById("dsatext");
  sourcDealerId.focus();
}

function getFocusBack() {
  var sourcDealerId = document.getElementById("dsatext");
  // 修正条件判断逻辑,用&&替代||
  if (sourcDealerId.value !== "DEALER" && sourcDealerId.value !== "MARKET") {
    alert("Text Box Values::" + sourcDealerId.value);
    alert("Valid Values are DEALER OR MARKET only");
    // 清空输入框的value,而非覆盖DOM元素变量
    sourcDealerId.value = "";
    sourcDealerId.focus();
  }
}

HTML代码

<input type="text" id="dsatext" onfocusout="getFocusBack()" />
<input type="text" id="othertext" />

内容的提问来源于stack exchange,提问作者Wasim Wani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:16:00