javascript - 为什么这个 javascript 验证不起作用?

标签 javascript html regex validation

我有以下 html 代码

<form style="font-size:20px;border: 1px solid #666;font-face:'times new roman';">

        test <sub>TM</sub>
            <TABLE>

                <tr><td>Name</td><td><input type="text"name="name" id="num1"/></td></tr>

                <tr><td>E-mail id</td><td><input type="text" name="E-mail id" id="email" placeholder="abc@efg.com"/></td></tr>

                <tr><td><p>Address</p></td>
                    <div>

                        <td><textarea name="address" rows="5" cols="10" id="num3"></textarea>
                    </div>
                </tr>

                <tr><td>location</td><td><select name="location"><br>
                        <option value="kerala">kerala</option>
                        <option value="tamil nadu">tamil nadu</option></td></tr>
                        </select><br>
                <tr><td>Gender</td><td><input type="radio"name="gender" value="male">male</td></tr> <br>
                <tr><td></td><td><input type="radio"name="gender" value="female">female</td></tr><br>


                <tr><td><input type="checkbox"name="agree" value="I agree with the above information">I agree with the above information<br>
                <input type="button" value="LOGIN" onclick="letters()"/></td></tr>
            </table>
        </form>

以及以下 javascript

<script type="text/javascript">
function letters() 
{
   var emailText = document.getElementById('email').value;
    //alert(emailText);
    var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
    var x=document.getElementById("num1").value;
                //alert(x);
     var letters = /^[a-zA-Z]+$/ ;  

   if (pattern.test(emailText)==true && x.test(letters)==true) 
        {
                    alert("ok");
                    return true;
         }
    else
        {
                      alert("not ok");
                    return false;
        }
}
</script>

此脚本的作用是,单击按钮时,它将调用函数 letters() 并根据电子邮件和字母正则表达式验证输入字段。

但是为什么这不起作用?

我是 javascript 和 html 的新手,事实上我正在学习它。所以请帮忙。

最佳答案

您能否检查一下您的问题可能出在这里:

<input type="text" name="E-mail id" id="email" placeholder="abc@efg.com" id="num2">

代码中上述字段中定义了两次 id。

希望这有帮助

关于javascript - 为什么这个 javascript 验证不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514991/

相关文章:

javascript - 用可重复的纹理填充图像

java - 正则表达式模式灾难性回溯

javascript - 正则表达式在 Google Apps Script 的 body.replaceText() 中匹配 $ 但不匹配\$ 或 $$

java - 从 Javascript 访问 richfaces 树的选定节点

javascript - 检查 JavaScript if 语句中的部分匹配

javascript - javascript/jquery 表单的随机数

javascript - 如何让这个进度条停在我提供的特定值

html - CSS:如何将 <img> 定位到父元素的中间

javascript - 无法获取图像高度,改为获取naturalHeight

javascript - 从网址正则表达式中排除电子邮件地址