Javascript 在表单提交时调用自定义函数

Javascript 在表单提交时调用自定义函数,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个函数,可以在表单中交换数据属性和操作: $(function() { function SwapAction() { var dataAttr = $('.review-form').data(); $('.review-form')[0].action = dataAttr.action; } }); 如果表单通过验证检查,我希望在提交表单时执行此操作。验证JS如下所示: var submitcount7303 = 0; functi

我有一个函数,可以在表单中交换数据属性和操作:

$(function() {
    function SwapAction() {
        var dataAttr = $('.review-form').data();
        $('.review-form')[0].action = dataAttr.action;
    }
});
如果表单通过验证检查,我希望在提交表单时执行此操作。验证JS如下所示:

var submitcount7303 = 0;

function checkWholeForm7303(theForm) {
  var why = "";
  if (theForm.FirstName) why += isEmpty(theForm.FirstName.value, "First Name");
  if (theForm.LastName) why += isEmpty(theForm.LastName.value, "Last Name");
  if (theForm.EmailAddress) why += checkEmail(theForm.EmailAddress.value);
  if (why != "") {
    alert(why);
    return false;
  }
  if (submitcount7303 == 0) {
    submitcount7303++;
    SwapAction(); //Calling Function 
    theForm.submit();
    return false;
  } else {
    alert("Form submission is in progress.");
    return false;
  }
}
表单未提交,我收到一个错误:

Reference Error: SwapAction is not defined.
以下是带有操作的HTML表单:

<form action="" data-action="/FormProcessv2.aspx?WebFormID=89926&amp;OID={module_oid}&amp;OTYPE={module_otype}&amp;EID={module_eid}&amp;CID={module_cid}" enctype="multipart/form-data" onsubmit="return checkWholeForm7303(this)" method="post" name="catwebformform7303" class="review-form custom">

我想我忽略了一些简单的事情。如果我删除
SwapAction()
并删除
数据操作
,然后将表单设置回默认值,它可以正常工作


如何修复错误并实现脚本?

该函数不在范围内,它在包装DOM就绪函数的范围内,因此请删除:

function SwapAction() {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}

该函数不在范围内,它在包装DOM就绪函数的范围内,因此请删除:

function SwapAction() {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}

该函数不在范围内,它在包装DOM就绪函数的范围内,因此请删除:

function SwapAction() {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}

该函数不在范围内,它在包装DOM就绪函数的范围内,因此请删除:

function SwapAction() {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}

您在document ready的回调函数中定义了
SwapAction()
,这是一个不同的作用域,因此您不能在全局作用域中访问它。

您在document ready的回调函数中定义了
SwapAction()
,这是一个不同的作用域,因此您不能在全局作用域中访问它。

您定义了
SwapAction()
在document ready的回调函数中,这是一个不同的作用域,因此您不能在全局作用域中访问它。

您在document ready的回调函数中定义了
SwapAction()
,这是一个不同的作用域,因此您不能在全局作用域中访问它。

SwapAction()
不在这里

如果您想使用第一种方法:

$(function() {
SwapAction = function {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}
});
然后您可以在调用当前代码时调用它。

SwapAction()
在这里超出范围

如果您想使用第一种方法:

$(function() {
SwapAction = function {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}
});
然后您可以在调用当前代码时调用它。

SwapAction()
在这里超出范围

如果您想使用第一种方法:

$(function() {
SwapAction = function {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}
});
然后您可以在调用当前代码时调用它。

SwapAction()
在这里超出范围

如果您想使用第一种方法:

$(function() {
SwapAction = function {
    var dataAttr = $('.review-form').data();
    $('.review-form')[0].action = dataAttr.action;
}
});

然后您可以在调用当前代码时调用它。

明白了!非常感谢。现在开始工作了,明白了!非常感谢。现在开始工作了,明白了!非常感谢。现在开始工作了,明白了!非常感谢。现在工作。