gpt4 book ai didi

javascript 在输入字段上添加两个多重事件

转载 作者:行者123 更新时间:2023-11-30 17:38:17 25 4
gpt4 key购买 nike

我正在尝试在输入字段上添加两个事件,例如 onkeyup 和 onchange,目的是避免长按数字以外的字符……因为该字段用于邮政编码。目前只有一个事件在 keypress/onchange 中起作用。我正在添加我的代码以供引用,我们将不胜感激。

function zipchange(obj, selector){
var code = obj.value;
var isnum = /^\d+$/.test(code);
if(!isnum)
obj.value="";
}//onchange
function autoZip(obj, selector){
var code = obj.value;
if(code.match(/\D/gi))
obj.value = code.replace(/\D/gi,'');
if(code.length>4 && code.indexOf('-')== -1){
var substr = code.substring(4);
substr=substr.replace(/\D/gi,'');
obj.value = code.substring(0,4)+'-'+substr;
}//onkeypress
//html
<input id="pincode" type="text" data-validate="validate[required]" name="address.pinCode" required="true" onkeyup="autoZip(this)" onchange="zipchange(this)" msg="Enter valid zip code" />

回答:

function autoZip(obj, selector){
var code = obj.value;
if(code.match(/\D/gi))
obj.value = code.replace(/\D/gi,'');
if(code.length>4 && code.indexOf('-')== -1){
var substr = code.substring(4);
substr=substr.replace(/\D/gi,'');
var substr1 = code.substring(0,4);
obj.value = substr1+'-'+substr;
var isnum = /^\d+$/.test(substr1)
if(!isnum)
obj.value="";
}

您好,上面修改后的函数成功了..感谢所有帮助过我的开明人士..

最佳答案

首先,当您更改文本框的内容以及您从输入类型上失去焦点时会触发 onchange

因此使用 onchange 事件是没有用的,你必须在 keyup 事件中实现你的 onchange 逻辑

关于javascript 在输入字段上添加两个多重事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594067/

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