移动端(html5)微信公众号下用keyup实时监控input值的变化无效

本文介绍了一个具体的前端开发场景,即如何在输入框值发生变化时进行有效监听,并解决了在不同输入法环境下遇到的问题。同时,还讨论了在IE9浏览器中使用oninput和onpropertychange事件时的特殊注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<div class="weui_cell_primary">									
										<input id="investmentAmount" name="investmentAmount" style="font-size: 14px; width: 100%; line-height: 40px;"
											pattern="[0-9]*" type="tel" maxlength="10"
											placeholder="100起投" value="${investAmount}"
											onblur="countInterest();" oninput="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')};changeCoupons();" onpropertychange="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')};changeCoupons();" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')};"/>
									</div>

//金额改变
	function changeCoupons(){
		var amount = getInvestmentAmount();
		if (isNaN(amount) || amount == 0 || amount == null) {
			$("#interest").val("0.00");
			return;
		}
		var loanMoney=$("#loanMoney").val();
		
		if(parseFloat(amount)<parseFloat(loanMoney)){
			$("#userCouponRate").val("");
			$("#userCouponId").val("");
			$("#selectCoupon").html('该优惠券不可用');
			$("#indeX").val("-1");
		}
	}

公众平台开发时,客户提需求“输入框中输入内容时,输入框后边显示清除按钮,清除输入框中的内容”,使用“keyup”事件时在中文输入法下部分按键keyup事件无效。

最后需要注意的是:oninput 和 onpropertychange 这两个事件在 IE9 中都有个小BUG,那就是通过右键菜单菜单中的剪切和删除命令删除内容的时候不会触发,而 IE 其他版本都是正常的,目前还没有很好的解决方案。不过 oninput & onpropertychange 仍然是监听输入框值变化的最佳方案。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值