整数的HTML表单的输入类型

时间:2012-07-02 23:07:47

标签: html

以下代码来自HTML表单。如果输入应该是整数,我是否需要更改“类型”?

<div class="friend2title">
    <label for="url">Add points:</label>
</div> 
<div class="friend2field">
    <input name="state" type="text" id="state" maxlength="150">
</div>

7 个答案:

答案 0 :(得分:32)

<input type="number" step="1" ...

通过添加step属性,可以将输入限制为整数。

当然,您也应该始终在服务器上进行验证。除了在严格控制的条件下,从客户收到的所有东西都需要被视为可疑。

答案 1 :(得分:22)

如果您使用的是HTML5,则应使用输入类型number。如果您使用的是xhtml或html 4,则输入类型应为text

答案 2 :(得分:16)

这可能会有所帮助:

<input type="number" step="1" pattern="\d+" />

step是为了方便(可以设置为另一个整数),但是pattern执行了一些实际操作。

请注意,由于pattern与整个表达式匹配,因此无需将其表示为^\d+$

即使使用这种外观紧凑的正则表达式,Chrome和Firefox的实现,有趣地允许e在这里(可能用于科学记数法)以及-用于负数,Chrome也允许. 1}}而Firefox拒绝更严格,除非.后面只有0。 (Firefox在输入失去焦点时将该字段标记为红色,而Chrome不允许您首先输入不允许的值。)

因为,正如其他人所观察到的那样,应始终在服务器上(或在客户端上验证,如果在客户端本地使用该值或希望防止用户往服务器的往返)。

答案 3 :(得分:3)

在HTML5之前,输入类型=“文字”仅表示插入自由文字的字段,无论您想要什么。这是您必须要做的验证工作,以保证用户输入有效的数字

如果您使用的是HTML5,则可以使用新的输入类型,其中一种是数字,可以自动验证文本输入,并强制它为数字

请记住,如果您正在构建一个服务器端应用程序(例如php),您仍然需要验证该方面的输入(确保它确实是一个数字),因为它很容易破解html并更改输入类型,删除浏览器验证

答案 4 :(得分:0)

不,它与输入的数据类型无关。它指定type of control to create

  

type = text | password | checkbox | radio | submit | reset | file | hidden | image | button [CI]       此属性指定要创建的控件的类型。此属性的默认值为“text”。

答案 5 :(得分:0)

您应该将您的类型更改为数字 如果您首先接受小数并在keyUp上将其删除,则可以解决此问题...

$("#state").on('keyup', function(){
    $(this).val($(this).val().replace(".", ''));
})

$("#state").on('keyup', function(){
    $(this).val(parseInt($(this).val()));
})

这将删除句点,但是没有“整数类型”。

答案 6 :(得分:-8)

即使您想接受输入数字,我也建议您使用text类型。

<input type="text" name"some-number" />

客户端运行一些jQuery验证来验证它是一个数字。

然后在您的服务器端代码中,运行一些验证以验证它实际上是一个数值。