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

快速Javascript表单查询

快速Javascript表单查询,javascript,html,css,forms,Javascript,Html,Css,Forms,我已经编写了一个非常简单的javascript表单,但是我无法让它正常运行。正如您将在下面的代码和小提琴中看到的。我需要表单来验证所有部分,并确保在名字和姓氏框中只添加字母数字信息。此外,我还希望表单在1或所有字段中未输入任何内容时返回错误 我是Javascript编码新手,请有人帮我查询一下。我相信会有一个简单快捷的解决方法 提前谢谢 函数ValidationEvent(){ var name=document.getElementById(“name”).value; var email

我已经编写了一个非常简单的javascript表单,但是我无法让它正常运行。正如您将在下面的代码和小提琴中看到的。我需要表单来验证所有部分,并确保在名字和姓氏框中只添加字母数字信息。此外,我还希望表单在1或所有字段中未输入任何内容时返回错误

我是Javascript编码新手,请有人帮我查询一下。我相信会有一个简单快捷的解决方法

提前谢谢

函数ValidationEvent(){
var name=document.getElementById(“name”).value;
var email=document.getElementById(“name2”).value;
var contact=document.getElementById(“消息”).value;
如果(名称!=''&&name2!=''&&message!=''){
如果(/^([\w-\.]+$/.test(名称)){
警报(“所有类型的验证已在OnSubmit事件上完成。”);
返回true;
}否则{
警告(“请提供有效的名字!”);
返回false;
}
}否则{
警报(“请提供有效的第二个名称!”);
返回false;
}
}否则{
提醒(“请在消息框中输入一些文本”);
返回false;
}
}否则{
警报(“所有字段均为必填项…”);
返回false;
}
}
.main{
宽度:333px;
填充:10px;
边缘顶部:20px;
右边距:-28px;
边框:1px纯黑;
浮动:对;
z指数:-1;
}
输入[类型=文本]{
宽度:100%;
高度:40px;
填充物:5px;
边缘底部:25px;
边缘顶部:5px;
边框:2个实心#ccc;
颜色:#4F4F;
字体大小:16px;
}
标签{
颜色:黑色;
字体大小:14px;
}
输入[类型=提交]{
字号:18px;
背景:#CF1559;
光标:指针;
宽度:40%;
}
输入[类型=提交]:悬停{
背景:#fff;
}

名字:
姓氏:
信息:

主要问题是您没有正确使用正则表达式

这一行:

if (name == /^([\w-\.]+ $) {
应该是这样的:

if (/^([\w-\.]+)$/.test(name)) {
请注意,正则表达式用斜杠(
/
)包装。我们还使用
test
函数确定
name
的值是否由
RegExp
对象找到

我建议阅读MDN上的正则表达式:

此外,还有许多在线RegExp测试工具可帮助您尝试您的模式。我喜欢使用RegExp 101:

第二个问题是if/else逻辑非常混乱:

if (name != '' && name2 != '' && message != '') {
    if (/^([\w-\.]+ $/.test(name)) {
        alert("All type of validation has done on OnSubmit event.");
        return true;
    } else {
        alert("Please provide valid first name!");
        return false;
    }
} else {
    alert("Please provide valid second name!");
    return false;
}
} else {
    alert("Please put some text in the message box");
    return false;
}
} else {
    alert("All fields are required.....!");
    return false;
}
对于您试图捕获的其他情况,您没有与您的
else
语句匹配的
if
语句:

if (name != '' && name2 != '' && message != '') {
    if (/^([\w-\.]+)$/.test(name)) {
        alert("All type of validation has done on OnSubmit event.");
        return true;
    } else {
        alert("Please provide valid first name!");
        return false;
    }
    if (/^([\w-\.]+)$/.test(name2)) {
        return true;
    } else {
        alert("Please provide valid second name!");
        return false;
    }
    if (/^([\w-\.]+)$/.test(message)) {
        return true;
    } else {
        alert("Please put some text in the message box");
        return false;
    }
} else {
    alert("All fields are required.....!");
    return false;
}

这里,对于每个
else
,都有一个
if
。除此之外,如果您的正则表达式不正确,则验证可能不起作用。我无法在这里纠正这一点,但您应该能够利用上面的链接自行修复。请记住,您应该永远不要依赖客户端验证,并且应该始终使用它在服务器端的验证进入数据库或API之前,请仔细检查它。

主要问题是您没有正确使用正则表达式

这一行:

if (name == /^([\w-\.]+ $) {
应该是这样的:

if (/^([\w-\.]+)$/.test(name)) {
请注意,正则表达式用斜杠(
/
)包装。我们还使用
test
函数确定
name
的值是否由
RegExp
对象找到

我建议阅读MDN上的正则表达式:

此外,还有许多在线RegExp测试工具可帮助您尝试您的模式。我喜欢使用RegExp 101:

第二个问题是if/else逻辑非常混乱:

if (name != '' && name2 != '' && message != '') {
    if (/^([\w-\.]+ $/.test(name)) {
        alert("All type of validation has done on OnSubmit event.");
        return true;
    } else {
        alert("Please provide valid first name!");
        return false;
    }
} else {
    alert("Please provide valid second name!");
    return false;
}
} else {
    alert("Please put some text in the message box");
    return false;
}
} else {
    alert("All fields are required.....!");
    return false;
}
对于您试图捕获的其他情况,您没有与您的
else
语句匹配的
if
语句:

if (name != '' && name2 != '' && message != '') {
    if (/^([\w-\.]+)$/.test(name)) {
        alert("All type of validation has done on OnSubmit event.");
        return true;
    } else {
        alert("Please provide valid first name!");
        return false;
    }
    if (/^([\w-\.]+)$/.test(name2)) {
        return true;
    } else {
        alert("Please provide valid second name!");
        return false;
    }
    if (/^([\w-\.]+)$/.test(message)) {
        return true;
    } else {
        alert("Please put some text in the message box");
        return false;
    }
} else {
    alert("All fields are required.....!");
    return false;
}

这里,对于每个
else
,都有一个
if
。除此之外,如果您的正则表达式不正确,则验证可能不起作用。我无法在这里纠正这一点,但您应该能够利用上面的链接自行修复。请记住,您应该永远不要依赖客户端验证,并且应该始终使用它在进入数据库或API之前,请在服务器端仔细检查您的验证。

有什么问题吗?@BjørnSørensen表单未验证,我无法理解原因。首先,请检查正则表达式代码行并重写该部分。@sam谢谢sam,抱歉,我看不到我在这一行中做了什么。您能帮忙吗?有什么问题吗m?@BjørnSørensen表单没有验证,我不明白为什么?首先,检查正则表达式代码行并重写该部分。@sam谢谢sam,抱歉我看不到我在这一行做了什么。你能帮忙吗?谢谢Justin,我一定会读更多。我已经更新了小提琴。但是验证仍然没有出现要工作吗?正则表达式显示:
/^([\w-\.]+$/
无效。右侧缺少结束捕获组。@cal我已更新了我的答案,以包括您代码中的其他问题。@justin pearce感谢justin。验证尚未生效,但您的解释非常好,非常感谢您的时间。谢谢justin,我一定会在某个时候阅读此mo关于。我已经更新了小提琴。但是验证似乎仍然不起作用?正则表达式显示:
/^([\w-\.]+$/
无效。它缺少右栏的结束捕获组。@cal我已更新了我的答案,以包括您的代码中的其他问题。@justin pearce感谢justin。验证尚未生效,但您的解释很好。非常感谢您的时间。