HTML5验证数值

时间:2016-02-23 05:55:26

标签: html html5 validation

我有一个简单的html页面,其中包含两个输入文本框和一个提交按钮。 当我点击包含无效电子邮件地址的提交按钮时,它会给我一条错误消息。我如何为数值的其他文本框实现相同的(显示弹出的小工具提示)?

enter image description here

这是完整的HTML

<html>
<head>
<style>
body {
  font: 1em sans-serif;
  padding: 0;
  margin : 0;
}

form {
  max-width: 200px;
  margin: 0;
  padding: 0 5px;
}

p > label {
  display: block;
}

input[type=text],
input[type=email],
input[type=number],
textarea,
fieldset {
/* required to properly style form 
   elements on WebKit based browsers */
  -webkit-appearance: none;

  width : 100%;
  border: 1px solid #333;
  margin: 0;

  font-family: inherit;
  font-size: 90%;

  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

input:invalid {
  box-shadow: 0 0 5px 1px red;
}

input:focus:invalid {
  outline: none;
}
</style>

</head>
<body><form>
<p>
    <label for="t1">What's your age?</label>
    <input type="number" id="t1" name="age">
  </p>
<p>
    <label for="t2">What's your e-mail?</label>
    <input type="email" id="t2" name="email">
  </p>
<p>
    <button>Submit</button>
  </p>
</form>
</body>
</html>

5 个答案:

答案 0 :(得分:6)

更好的解决方案是使用pattern属性,该属性使用正则表达式来匹配输入:

  public static void main(String args[]){
      System.out.println("Guess the number of Apples Tom has");
      Scanner sc= new Scanner(System.in);
      int number=sc.nextInt();
      System.out.println("Tom, is it higher or lower?");
      String higherOrLower=sc.nextLine();

      while(true){
          number= getValue(higherOrLower,number);
          System.out.println("Tom, is it higher or lower?");
          higherOrLower=sc.nextLine();
          if(higherOrLower.equalsIgnoreCase("none")) {
                break;
          }
      }
  }

  public static int getValue(String i,int j){

        if(i.equalsIgnoreCase("lower")) {
            j--;
            return j;
        } else if(i.equalsIgnoreCase("higher")) {
            j++;
            return j;
        } else {
            return j;
        }
    }

\ d是数字的正则表达式,*表示它接受多个数字。

答案 1 :(得分:1)

<input type="number" required >
<input type="submit" >

这对我有用

答案 2 :(得分:0)

由于您已经在使用HTML 5数字文本框,因此您无需手动设置此类工具提示。如果有任何验证错误,则此工具提示将自动显示为与电子邮件相同。

这是一个数字文本框,因此除了数字之外,它不允许您输入任何其他字符,因此在这种情况下,您将不会收到任何验证错误。如果您设置了最小值和最大值等限制,并且验证不正确,则会自动显示工具提示。

您可以通过在文本框中设置一些数字限制来检查工具提示。希望这会帮助你。

答案 3 :(得分:0)

可以通过javascript帮助实现。

<input type="text" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" > 

我只是跳过非数字字符。用户只能填充数字数据。 希望这是你想要的。

答案 4 :(得分:0)

使用HTML进行默认验证可以毫不费力地完成

<input type="number" required >
<input type="submit" >