Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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_Forms - Fatal编程技术网

使用Javascript进行表单验证(通过所选选项验证输入文本)

使用Javascript进行表单验证(通过所选选项验证输入文本),javascript,forms,Javascript,Forms,我有以下表格: <form accept-charset="UTF-8" action="type.php" id="form" method="post"> <label id="type" for="type" class="">Type</label> <select class="" id="Type" name="type"> <option id="a" value="A">Type A&l

我有以下表格:

<form accept-charset="UTF-8" action="type.php" id="form" method="post">

    <label id="type" for="type" class="">Type</label>
    <select class="" id="Type" name="type">
        <option id="a" value="A">Type A</option>
        <option id="b" value="B">Type B</option>
        <option id="c" value="C">Type C</option>
        <option id="d" value="C">Type D</option>
        <option id="e" value="C">Type E</option>
    </select>

        <label for="type_number" class="inner_text">Type Number</label>
        <input name="type_number" type="text" class="false" id="type_number">
        <input type="submit" value="Confirm">
</form>

类型
A型
B型
C型
D型
E型
型号
我需要做的是验证类型号。类型编号必须以我选择的编号开头。例如:

A型-1234

B型-2234

C-3234型

D-4234型

E-5234型

所以A型必须以1开头,B型必须以2开头,以此类推。我只需要查一下第一个号码

我必须提到,我在这里有一个类似的问题:,这不是同一件事,但是相似的,而且我没有得到一个很好的答案来解决这个问题

我非常感谢所有的评论,谢谢


请原谅我的英语

检查下面的代码,这将对您有所帮助

页面代码

  <form accept-charset="UTF-8" action="verify.php" id="form" method="post">
 <label id="type" for="type" class="">Type</label>
 <select class="" id="Type" name="type">
 <option id="a" value="1">Type A</option>
 <option id="b" value="2">Type B</option>
 <option id="c" value="3">Type C</option>
 <option id="d" value="4">Type D</option>
 <option id="e" value="5">Type E</option>
 </select>
 <label for="type_number" class="inner_text">Type Number</label>
 <input name="type_number" type="text" class="false" id="type_number">
 <input type="button" id="Confirm" value="Confirm" >
 </form>

你可以这样做

var startNumbers = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5};

function validate() {
   // get type
   var type = document.getElementById('type').value;

   // get number
   var number = document.getElementById('number').value;

   // get first digit
   while (number > 0) {
      nr = number;
      number = Math.floor(number / 10);
   }

   // validate
   if (nr != startNumbers[type])
      return false;
   else
      return true;
}
需要时调用validate(onkeyup、onsubmit等等)


注意。。。这个脚本是直接作为答案编写的,因此可能需要一些调整

如果你不做其他使用数字的事情,字符串方法(Pragnesh答案)可能会更好。我不确定我做错了什么,但我无法让它工作。提交时需要验证。你能给我拿把小提琴吗?谢谢。这两个答案都很好(我检查了你的小提琴上的其他1个,你在js部分插入了html标记,你使用了点击按钮提交)。如果要在提交前进行验证,则不能使用“提交”按钮。如果这样做,数据将被发送,而不是验证。制作一个普通按钮,使用onclick作为事件,然后从js提交。你可以通过谷歌搜索得到9999999的结果。。。如果你只是讨厌谷歌。。。在这里尝试,尝试,但没有成功!我不擅长JavaScript,请检查一下,告诉我哪里不正确。谢谢。那里有太多不正确的地方。您还编辑了您的问题,并使用了来自已编辑问题的标记,而不是原始问题中的标记。你不能指望那会起作用。该死的。。。未保存编辑。基本上。。。在按钮类型中使用“按钮”而不是“提交”,更正输入的结尾(/>),删除对象定义,而不是与数字进行比较[type]直接与类型进行比较。那么至少花点时间来更改ID。。。来吧你可以从飞机上看到。这很有效,还有一个问题,如果type_编号为空,我可以提交表单。在这种情况下,你需要在点击提交按钮时调用新的验证功能。显示的答案是键盘上的validate(验证)。我知道如果type_编号为空,如何不提交表单。现在你能给我更多的帮助吗?我不想在用户写第一个数字时提醒他们。当他们提交我的表格时,如果号码错了,我想提醒他们。请帮忙,我真的不懂javascript。看这张照片。谢谢。谢谢你的回答,但我认为有一个错误,因为当我输入一个错误的号码时,他会告诉我错误,而当我输入一个正确的号码时,他不会提交表单,表单只会将按钮的名称从“确认”改为“确认”。请查收。谢谢。我得到了另一个问题的答案,我将此添加到了您的代码
文档中。表单[0]。提交()。谢谢
var startNumbers = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5};

function validate() {
   // get type
   var type = document.getElementById('type').value;

   // get number
   var number = document.getElementById('number').value;

   // get first digit
   while (number > 0) {
      nr = number;
      number = Math.floor(number / 10);
   }

   // validate
   if (nr != startNumbers[type])
      return false;
   else
      return true;
}