Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 表单onsubmit()不起作用_Javascript_Html - Fatal编程技术网

Javascript 表单onsubmit()不起作用

Javascript 表单onsubmit()不起作用,javascript,html,Javascript,Html,我想控制我的表单以获得所需的输入文本,我已经用javascript编写了一个函数。但是当我点击按钮,并且我没有填写必填字段时,消息不会出现,我可以转到其他页面。 功能是: function Validate(){ // create array containing textbox elements var inputs = [document.getElementById('firstname1')]; var error; for(var i = 0;

我想控制我的表单以获得所需的输入文本,我已经用javascript编写了一个函数。但是当我点击按钮,并且我没有填写必填字段时,消息不会出现,我可以转到其他页面。 功能是:

function Validate(){

    // create array containing textbox elements
    var inputs = [document.getElementById('firstname1')];

    var error;

    for(var i = 0; i<inputs.length; i++)
    // loop through each element to see if value is empty
    {
        if(inputs[i].value == '')
        {
            error = 'Please complete all fields.';
            alert(error);
            return false;
            }
    }
 }

它会在页面中打开另一个表单……因此,当我单击按钮时,第一个表单消失,第二个表单显示出来:
var inputs=[document.getElementById('firstname1')

然后你试着循环一下。我打赌
firstname1
是一个字段,所以它要么为null(如果该字段不存在),要么是一个只有一个元素的数组(字段)。看起来您正在尝试检查所有必填字段,因此无法正常工作


我不是百分之百地确定您最终想要做什么,但如果您使用jQuery这样的框架,可能会容易得多;否则,您将不得不为不同的浏览器执行一些复杂的案例处理。

代码中没有任何地方可以调用submit。这就是onsubmit处理程序中的函数未被触发的原因。如果您希望按钮提交表单,那么它需要是一个提交按钮

你的例子有点不清楚。例如,您试图验证是否已在输入“firstname1”中输入了值,但HTML中没有该元素的标记

我怀疑你想做的是验证表格是否已填写。类似以下内容(验证输入“firstname1”)将完成此工作:

$(document).on("click", "#submit1", function(){
    if($("#firstname1").val() == "" || $("#firstname1").val() == null){
        alert("Please complete all fields.");
    }
});
工作示例

以上内容需要jQuery,但也可以转换为普通JavaScript

通过包含以下代码,在文档的“head”部分加载jQuery库:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>


显示的html不包括
type=“submit”
按钮。另外,
displayform2()
有什么作用?是的,我让类型提交了,但它仍然不起作用。您提到的我在上面发布的
inputs
方法是一个数组,包含一个元素,该元素要么是DOM元素firstname1(如果找到了),要么是
null(如果找不到)。True(我将编辑),但我不认为那是OP想要做的。他有一个
for
循环,看起来他正在检查表单中的每个字段。是的,这正是我需要的。你能把它转换成javascript吗,因为我不知道jQuery。对不起,如果我打扰你,
.val()
什么时候会返回
null
?(如果
#firstname1
不存在,它将返回
undefined
,并且
undefined==null
给出
true
,但是您的代码将告诉用户完成一个不存在的字段。)@user2804038您只需要包含对jQuery库的引用即可使用jQuery语法。请参阅更新的answer@nnnnnn我想这只是习惯。至于未定义的元素,我从未遇到过有人对未在中初始化的内容进行JS验证的事件HTML@user2804038很高兴知道你发现它很有用!请考虑投票并接受这个答案,否则其他人会发现这个问题很有帮助。
$(document).on("click", "#submit1", function(){
    if($("#firstname1").val() == "" || $("#firstname1").val() == null){
        alert("Please complete all fields.");
    }
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>