gpt4 book ai didi

javascript - 文本字段不起作用的 SHIFT+HOME 和 SHFT+左/右键

转载 作者:行者123 更新时间:2023-11-30 10:00:44 26 4
gpt4 key购买 nike

我正在使用 Struts2 <s:textfield />标签和下面的代码使用 JS 计算并检查/验证在文本字段中输入的值。

它还会更新在 textfield 中输入的总数列表,这些由 onblur 处理和 onkeydown事件如下。

<s:textfield id = "fieldid" 
name = "xyz"
onblur = "javascript:calculateTotal()"
onkeydown = "javascript:checkDecimal(this); return checkDecimal(event);"
/>

通过使用此代码 SHIFT+HOME , SHIFT+LeftSHIFT+Right 键功能不起作用。

这是否有可能是由于 onblur 造成的?和 onkeydown事件?

function checkDecimal(evt) {
var charCode;
var version = msieversion();
if(version==8){
charCode = (window.event) ? evt.keyCode : evt.which;
charCode = (window.event) ? evt.keyCode : evt.which;
}else{
charCode = (evt.which) ? evt.which : evt.keyCode;
}
if (!evt.shiftKey) {
if ((charCode >= 48 && charCode <= 57) ||
(charCode == 8) ||
(charCode == 46) ||
(charCode == 190) ||
(charCode == 35 ) ||
(charCode == 36) ||
(charCode == 9) ||
(charCode == 37) ||
(charCode == 39) ||
(charCode >= 96 && charCode <= 105) ||
(charCode == 110))
{
return true;
} else {
return false;
}
} else {
if (charCode == 9) {
return true;
} else {
return false;
}
}
}

最佳答案

您需要使用 keypress 事件而不是 keydown 事件。

keypress 将拦截结果字符,
keydown 会将 SHIFT 解释为按钮本身。

然后尝试使用

<s:textfield id = "fieldid" 
name = "xyz"
onblur = "javascript:calculateTotal()"
onkeypress = "javascript:checkDecimal(this); return checkDecimal(event);"
/>

关于javascript - 文本字段不起作用的 SHIFT+HOME 和 SHFT+左/右键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31847889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com