Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Drupal表单可以';t访问javascript函数(错误“不是函数”)_Javascript_Jquery_Drupal_Lightbox2 - Fatal编程技术网

Drupal表单可以';t访问javascript函数(错误“不是函数”)

Drupal表单可以';t访问javascript函数(错误“不是函数”),javascript,jquery,drupal,lightbox2,Javascript,Jquery,Drupal,Lightbox2,使用drupal和lightbox2打开表单。此表单来自自定义模块 模块有一个设置:“onsubmit”=>“返回表单提交(this);”这似乎是正确的 我已经将functions.js包含在theme.info文件中,它将显示出来,我可以打开该文件并查看函数 function form_submission(data) { // action code } 出于某种原因,当我提交表单时,我总是收到“表单提交不是函数” if(Drupal.jsEnabled) { $(document)

使用drupal和lightbox2打开表单。此表单来自自定义模块

模块有一个设置:“onsubmit”=>“返回表单提交(this);”这似乎是正确的

我已经将functions.js包含在theme.info文件中,它将显示出来,我可以打开该文件并查看函数

function form_submission(data) {
   // action code
}
出于某种原因,当我提交表单时,我总是收到“表单提交不是函数”

if(Drupal.jsEnabled)
{
$(document).ready(function() {
    // Call back function for AJAX call

        var form_submission = function(responseText) {
            alert (responseText); 
        }

        // preventing entire page from reloading
        return false;
    });

}

表单提交必须是已定义的功能

function form_submission(data) {
   // action code
}
或者也试试看

var form_submission = new function(data) {
   // action code
}

并不是说这是一个完美的答案,而是我从document.ready jquery包装器中删除了该函数,然后它就开始使用了。

您的表单提交函数是其内部匿名函数(即document ready函数)的本地函数


您需要在全局范围内,在文档准备就绪之外声明函数。您至少需要声明变量form_submission。然后,您就可以将函数附加到任何您希望的位置。

谢谢,但还有其他事情要做。我可以在表单正上方的脚本标记之间添加函数,但仍然不走运。我尝试了您提到的两种函数声明技术。如果您在if(Drupal.jsEnabled)之后放了一个警报,它会出现吗?这种情况是真的吗?欢迎这么说,但你似乎回答了2010年的一个问题:/Lol,得到正确答案总是好的。奇怪的是,如果这是如此古老的话,它会出现在“未回答”问题的第一页。