使用javascript取消表单提交不起作用

使用javascript取消表单提交不起作用,javascript,jquery,html,forms,output,Javascript,Jquery,Html,Forms,Output,目标: 我制作了一个包含3个字段的表单,我想知道表单中是否还有一个空字段 该表单将被识别,并打印错误消息(针对每个空字段)(未发出警报),取消表单提交。错误消息最初是隐藏的,只有在字段为空时才可见 问题: 停止提交的代码不起作用。 请张贴任何错误。如果仅使用alert(),并删除代码以显示和删除隐藏的validaeFormOnSubmit()和validateEmpty(),则此功能有效 表格: 团队名称: &该字段是 必修的 联系人1:  字段 是必需的 联系方式2: &该字段是 必

目标: 我制作了一个包含3个字段的表单,我想知道表单中是否还有一个空字段 该表单将被识别,并打印错误消息(针对每个空字段)(未发出警报),取消表单提交。错误消息最初是隐藏的,只有在字段为空时才可见

问题: 停止提交的代码不起作用。 请张贴任何错误。如果仅使用alert(),并删除代码以显示和删除隐藏的validaeFormOnSubmit()和validateEmpty(),则此功能有效

表格:


团队名称:
&该字段是 必修的 联系人1:  字段 是必需的 联系方式2: &该字段是 必修的
剧本

<script >
$(document).ready(function () {
            var i;
            for(i=1;i<=3;i++)
                {
                var k='#'+i;
                $(k).hide();}

            });

function validateFormOnSubmit(theForm) {
    var reason = "";

   reason += validateEmpty(theForm.fname,1);
   reason += validateEmpty(theForm.contact,2);
   reason += validateEmpty(theForm.contact2,3);

  if (reason != "") {

    return false;
  }
  return true;
  }

  function validateEmpty(fld,k) {
    var error = "";

    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "error";
        var k='#'+i;
        $(k).show();
    } else {
        fld.style.background = 'White';
        var k='#'+i;
            $(k).hide();
        }
        return error;  
    }
    </script>

$(文档).ready(函数(){
var i;
对于(i=1;i这个呢?

您应该触发按钮单击,而不是documentReady()。 () 注意,您的按钮也是一个输入字段。

这个呢?

您应该触发按钮单击,而不是documentReady()。 ()
注意,您的按钮也是一个输入字段。

我建议如下:

  • 从HTML中删除
    onsubmit=“…”
  • 以编程方式绑定到
    onsubmit
    事件:

    $(...).on("submit", validateFormOnSubmit);
    
  • 相应地更改
    validateFormOnSubmit
    的签名:

    function validateFormOnSubmit(event) {
        // use this instead of theForm
    }
    
  • 而不是返回
    false
    do
    event.preventDefault()
    ,即:

    if (reason != "") {
        event.preventDefault();
    }
    

    • 我建议如下:

      • 从HTML中删除
        onsubmit=“…”
      • 以编程方式绑定到
        onsubmit
        事件:

        $(...).on("submit", validateFormOnSubmit);
        
      • 相应地更改
        validateFormOnSubmit
        的签名:

        function validateFormOnSubmit(event) {
            // use this instead of theForm
        }
        
      • 而不是返回
        false
        do
        event.preventDefault()
        ,即:

        if (reason != "") {
            event.preventDefault();
        }
        
      如果(fld.value.length==0){fld.style.background='Yellow';error='#'+k;//此处应该使用k而不是i$(error)。show();//此处应该使用error而不是k}否则{fld.style.background='White';error='#'+k;//此处应该使用k而不是i$(error).hide();//此处应该使用error而不是k}返回error;}如果(fld.value.length==0),则我的脚本是错误的{fld.style.background='Yellow';error='#'+k;//这里应该使用k而不是i$(error)。show();//这里应该使用error而不是k}否则{fld.style.background='White';error='#'+k;//这里应该使用k而不是i$(error)。hide();//这里应该使用error而不是k}返回error;}