Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止双字节字符的输入_Javascript_Jquery_Html_Laravel - Fatal编程技术网

Javascript 防止双字节字符的输入

Javascript 防止双字节字符的输入,javascript,jquery,html,laravel,Javascript,Jquery,Html,Laravel,我试图只输入数字,并阻止字符的其余部分。这是我的密码 $(文档).ready(函数(){ $('#poisa')。关于(“剪切复制粘贴”,函数(e){ e、 预防默认值(); }); }); 当caps lock未打开时,它工作正常。但当caps lock打开时,它将使用双字节字符,如受取金額我想阻止这种类型的字符。如何通过jquery实现这一点?您的“onKeyUp”应该是: <input type="number" maxlength="9" id="poisa" placeho

我试图只输入数字,并阻止字符的其余部分。这是我的密码


$(文档).ready(函数(){
$('#poisa')。关于(“剪切复制粘贴”,函数(e){
e、 预防默认值();
});
}); 
当caps lock未打开时,它工作正常。但当caps lock打开时,它将使用双字节字符,如
受取金額我想阻止这种类型的字符。如何通过jquery实现这一点?

您的“onKeyUp”应该是:

<input type="number" maxlength="9" id="poisa" placeholder="依頼申請金額 :" name="budget" onKeyUp="$(this).val($(this).val().replace(/[^\d]/ig, ''))" />

注意:如果输入,它将使其他输入(如字母或特殊字符)消失。

检查此项


为什么不使用数字输入?
您可以尝试简单的javascript://^[0-9]+$/.test(输入);如果它是纯数值运算,则返回true:
请不要提倡在键控中只使用简单的
$(this).val(…
)-它完全破坏了输入的工作方式并阻止您编辑值。请不要提倡只使用简单的
$(this).val(…
在键盘上-它完全破坏了输入的工作方式,并阻止您编辑值。例如,如果您有123但想要145,您可以使用光标键将光标移到2上,但不能,因为它已损坏。如果您有10但想要1230,您将在1-0和键入23之间单击-现在您有了1203,因为您的输入已损坏且糟糕透了是的,但是数字的最大长度为9,那么为什么我们需要使用光标在数字之间进行编辑呢?我们可以简单地退格并删除不需要的数字,然后重新键入想要的数字。退格和重新键入可能是您喜欢的方式,慢慢地编辑您的输入,但不是我。100000000哦,意味着123000000-如果您想重新键入所有这些并冒着添加错误的零的风险,好吧。我会用光标键划过,删除20,然后键入23,因为它不太容易出错。我多次看到这个答案,我认为它提供了一个糟糕的用户体验,所以会一直强调这一点。如果你不关心你的用户体验/用户,那就继续吧。是的,我绝对希望更安全一点,并且会这样做退格并重新键入不太长、也不太耗时的9位数字,以确保我正确输入了整个数字!这是我的用户最关心的问题,让他们输入正确的输入,从而确保更好的用户体验。毫无疑问,您的解决方案不太容易出错,但我的解决方案没有错误!所以让人们来做吧判断并决定他们应该采用哪种解决方案,有可能出现错误的解决方案(尽管可能性较小)还是完全不可能出现错误的解决方案。如果你输入了错误的密码,并且没有“眼睛/可见的pwd”,我很惊讶你会做什么输入中的按钮。您是否可以使用光标在第二个或第三个点上删除错误并再次键入?哦,我可能会通过将其全部反向滑动来重新键入密码。:)
$("#poisa").numbersOnly();
$("#poisa").lettersOnly();
$("#poisa").alphaNumericOnly();