event.preventDefault()不适用于android chrome

编程入门 行业动态 更新时间:2024-10-28 02:25:01
本文介绍了event.preventDefault()不适用于android chrome的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

event.preventDefault()无法在Chrome Android操作系统上运行。而同样的行动正在对Chrome IOS起作用。 我甚至使用了event.stopPropagation(),event.stopImmediatePropagation()。

event.preventDefault() not working on Chrome Android OS. Whereas the same action is working on chrome IOS. I even used event.stopPropagation(), event.stopImmediatePropagation().

HTML:

<input class="otherAmount" type="text"id="pVal" name="pVal" onkeydown="validatePaymentToTwoDecimal(this,event);"/>

Java脚本:

function validatePaymentToTwoDecimal(el, evt) { if(!$.isNumeric(evt.key)|| evt.key=="."){ evt.preventDefault(); evt.stopPropagation(); evt.stopImmediatePropagation(); return false; } else { return true; } }

推荐答案

基于在类似问题的答案上,您应该可以执行此操作来过滤输入:

Based on an answer for a similar question, you should be able to do this to filter the input:

$("#pVal").on( "input change paste", function filterNumericAndDecimal(event) { var formControl; formControl = $(event.target); formControl.val(formControl.val().replace(/[^0-9.]+/g, "")); });

Vanilla JavaScript解决方案

Vanilla JavaScript solution

var pInput; function filterNumericAndDecimal(event) { var formControl; formControl = event.target; formControl.value = formControl.value.replace(/[^0-9.]+/g, "")); } pInput = document.getElementById("pVal"); ["input", "change", "paste"].forEach(function (eventName) { pInput.addEventListener(eventName, filterNumericAndDecimal); });

这可以通过使用正则表达式删除数字和小数点字符来实现。

This works by removing digits and decimal point characters using a regular expression.

更多推荐

event.preventDefault()不适用于android chrome

本文发布于:2023-08-02 16:32:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279316.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不适用于   preventDefault   event   android   chrome

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!