delphi中如何让文本框只输入数字、减号、小数点、汉字和退格键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中如何让文本框只输入数字、减号、小数点、汉字和退格键相关的知识,希望对你有一定的参考价值。
如题
谢谢一楼的回答,但是还有一个问题,就是用那个代码仍可以输入标点符号之类的特殊符号,能否限制它们的输入啊?
if ord(key) >= $A1 then Exit;//允许输入汉字
if not(key in ['0'..'9','-','.',#8]) then//文本框只输入数
//字、减号、小数点和退格键
begin
key:=#0;
Exit;
end ;
Delphi7下测试通过。 参考技术A 在文本框的KEYPRESS事件中编写代码
if Key = #8 then dosomething;
这是退格,其他的你可以自己对照,找到相应的ASCII码就OK了
如何使文本框只接受 0-10 的数字,并且只接受小数部分的 0.5?
【中文标题】如何使文本框只接受 0-10 的数字,并且只接受小数部分的 0.5?【英文标题】:How to make a textbox only accept numbers from 0-10 and only .5 from decimal part? 【发布时间】:2018-12-28 08:20:03 【问题描述】:我有一个文本框,用户只能在其中输入 0-10 并且允许的小数部分是 0.5 所以一个人可以输入 0 或 .5 或 1.5 或 4 等等。 在这里我可以添加所有数字:
<script>
function handleChange(input)
if (input.value < 0) input.value = 0;
if (input.value > 10) input.value = 10;
</script>
<input type="text" onchange="handleChange(this);" />
我需要提醒输入错误并重置该文本框。
【问题讨论】:
你也可以在html5中做到这一点 另一种选择是只拥有一个匹配 0 到 10 的pattern
属性,不需要 Javascript,尽管这无法重置框,只能告诉用户输入是无效
@VishnuBhadoriya 如何防止用户输入值
@qww 比如你想防止输入什么样的值
@VishnuBhadoriya 除了允许的任何东西......这样我就可以将数字类型替换为文本并使用步骤 0.5 防止从 0 到 10
【参考方案1】:
扩展@Vishnu Badhoriya 的评论,我们也可以这样做:
HTML
<input id="number" type="number" min="0" max="10" step="0.5" onchange="roundHalf(this.value)">
JS (jQuery)
function roundHalf(num)
if (num > 10)
$('#number').val(10);
else if (num < 0)
$('#number').val(0);
else
$('#number').val(Math.round(num*2)/2);
您也可以采用非 jQuery 方法,但我只是选择这样做是因为易于演示。这将确保用户无法输入自己的值。
在此处查看 CodePen 以了解它的实际效果:https://codepen.io/anon/pen/RBoJGB
编辑:忘记实现其他约束,对于 0
【讨论】:
但我需要阻止所有高于 10 和低于 0 的值 是的,上面的 min 和 max 属性将阻止开始输入 10 好的,我相信他希望手动输入更高的数字也受到限制。我确实忘记了那个约束。那应该很简单。您只需在 roundHalf() 函数中添加您在问题中实现的 if 条件,如果值大于 10,则将输入的值更改为 10。以上是关于delphi中如何让文本框只输入数字、减号、小数点、汉字和退格键的主要内容,如果未能解决你的问题,请参考以下文章