JavaScript断点时正常运行,无断点时blur校验及焦点设置失效求助
问题:文本框blur校验仅调试时生效,正常运行失效
当文本框失去焦点(blur)时,我会校验其值是否在允许范围内,若不在就弹窗提示用户,并将焦点切回该文本框。这个功能在JavaScript触发断点,或者通过后端代码实现时都能正常工作,但不开启开发者工具、无断点运行时完全失效。
事件绑定代码(页面加载时)
Weight.Attributes.Add("onkeyup", "CheckForRouteInfoChanges();") Weight.Attributes.Add("onblur", "ValidateWeight();")
文本框控件定义
<asp:TextBox runat="server" ID="Weight" Width="150px" />
对应的JavaScript校验函数
function ValidateWeight() { var currentWeight = document.getElementById("<%=Weight.ClientID%>"); if (currentWeight.value != document.getElementById("<%=oldWeight.ClientID %>").value) { var valid = true; var current = parseInt(currentWeight.value); var minimum = parseInt(document.getElementById("<%=MinWeight.ClientID%>").value); var maximum = parseInt(document.getElementById("<%=MaxWeight.ClientID%>").value); if (minimum > current) { alert("Weight must be at least " + minimum); console.log(currentWeight.value); valid = false; } if (maximum < current) { alert("Weight must be at most " + maximum); valid = false; } console.log('Finished checking weights!'); if (!valid) { console.log(currentWeight.value); currentWeight.focus(); currentWeight.select(); console.log('Focus ought to be set!'); } } }
我不清楚还需要排查哪些点来解决这个仅在调试时正常的问题,恳请帮助。
编辑:根据iamdlm的建议添加了控制台日志,日志输出符合预期,但焦点仍未设置:
3 Finished checking weights! 3 Focus ought to be set!
内容的提问来源于stack exchange,提问作者Michael Foster
相关产品推荐
相关产品推荐

