- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有以下 javascript 函数,其中包含一些 jquery。当我调用 createAppointmentConfirm 函数时,它尝试调用 SendMail(id) 函数但抛出错误:
"Microsoft JScript runtime error: Function expected"
Firefox 调试器抛出一个错误:
SendMail is not a function [Break On This Error] SendMail(data.Message);
这是代码。感谢您的帮助。
function createAppointmentConfirm(data) {
if (data.Error) {
alert(data.Message);
} else {
if ($('#sendMail').attr('checked') == 'checked') {
SendMail(data.Message);
}
RefreshAppointmentList();
}
}
function SendMail(id) {
$.ajax({
url: $('#sendMail').attr('title'),
data: { id: id },
type: "POST",
beforeSend: function () {
$('#sendingMail').dialog({ modal: true });
},
success: function (data) {
if (data.Error) {
alert(data.Message);
}
$('#sendingMail').dialog("close");
},
error: function () {
alert("Error sending mail");
$('#sendingMail').dialog("close");
}
});
}
最佳答案
天哪,我喜欢这类问题,主要是因为我可以做一些研究和示例代码! :)
那么,首先,让我们解释一下您的代码发生了什么。
您的代码技术上没有任何问题,只是您遇到了命名冲突或者您尝试调用的函数超出了调用它们的范围。也可能是您链接了两个单独的 javascript 文件,其中一个文件在运行时未正确链接,可能是因为拼写错误。
这里有一些关于这些问题的文章:
Here's a debugging guide ,更准确地说,看一下标题下的底部运行时错误消息
副标题 xyz 未定义
xyz is not defined
This error occurs when your JavaScript code references a variable or object that does not exist. For example, you get the error with the following. (Note that the assigned variable is Test, whereas the variable used with the alert method is Text.)var Test="This is a test; alert (Text);
Another common mistake is to use the wrong capitalization when referring to variables and objects. This code results in an error, even though you have spelled the variable name correctly:
var Test="This is a test; alert (test);
或者,正如他们没有提到的那样:您可能已经声明了一个函数和一个变量,它们都具有相同的名称。
当您在 HTML 面板中按下“go”提交按钮时,JSFiddle 中的以下示例将触发错误/运行代码。
解决方案完全取决于您。您没有发布完整的代码,所以我真的无法帮助您找到确切的位置。
如果我猜一下,我会说您已经在某处声明了一个名为 SendMail
的变量,并且脚本假定您指的是那个变量。
我创建了一个在 JSFiddle 中发生命名冲突的示例。
function SendMail(iId) {
//Send the mail information to a server page that will pass it along
//For this example, we'll pretend it returned an object
var oReturned = {
"Error": null,
"Message": "Mail has been sent."
};
SendDebugMessages(oReturned.Message);
}
function SendDebugMessage(msg){
$("#debug").prepend("<div>"+msg+"</div>");
}
在这里,我尝试调用 SendDebugMessage()
函数,
但是我调用的时候有点粗心,加了一个s
就变成了SendDebugMessages()
。
哎呀。
它也可能发生在对象和变量上。您只是不知道它来自哪里。
当然,解决它所需要做的就是将它改回正确的函数名
Here's an example我认为代表你的问题,一个函数和一个共享相同名称的变量。
var SendDebugMessage = "something";
function SendDebugMessage(msg){
$("#debug").prepend("<div>"+msg+"</div>");
}
一种直接的解决方法:更改其中一个的名称。
关于javascript - Microsoft JScript 运行时错误 : Function expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681700/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是脚本新手。如何编写 Expect 脚本以通过 ssh 连接到设备并提示用户输入密码?我们使用 pin + RSA token 代码作为密码,因此我无法存储密码。 #!/usr/bin/expect
我编写了以下代码并尝试执行它。但我在执行 do {”时遇到“无效的命令名称“do”” 代码: #!/usr/bin/expect set val 0; set input 5; do { pu
我已经查看了 Expect 联机帮助页并用 Google 搜索了它,但我还没有找到 expect 的 -r 是什么。我看到这个选项以前是这样用的 expect -r "\r\n\r\n" 在 expe
我的 shebang 看起来像这样: #!/usr/bin/expect -d 当我从命令行运行脚本时,它会提供我想要的内容。 但是,我通过 crontab 运行这个脚本。是否可以将调试开关保持打开状
我是 Expect 脚本的新手。 我在 Linux 机器上为 ssh 编写了一个 Expect 脚本,在那里我在 ssh 到不同的 Linux 机器时遇到了问题。下面我复制了脚本。 !/usr/loc
Scene 1, Layer 'script', Frame 1, Line 9 1084: Syntax error: expecting identifier before this. Sc
我正在运行调试命令以将命令的输出记录到文件中。我尝试了 log_file 命令,但它没有记录输出。我的代码如下: log_file -a gdb.txt send "~/debugulator.sh
我希望 expect_user 有一个无限的(或非常大的)超时和 expect 的默认超时。有没有办法设置不同的超时?或者我是否只需要在每次更改用途之前手动执行此操作? 最佳答案 expect 和ex
我正在学习 iOS 编程(我来自 Android),我正在寻找更容易获取字符串的方法。有了这个建议,我定义了下一个宏并在一些代码片段中使用它: #define STRING_BASE @"InfoPl
你好我是 rspec 的新手,我想弄清楚将 block 传递给 expect{} 和只使用 expect() 之间的区别 这是一个简单的例子 require "rails_helper" RSpec.
我正在尝试为 React JS 运行单元测试 - 使用 jest/enzyme。 目前测试失败。不太清楚为什么,也许我没有正确调用 expect(wrapper.find)。这是我测试的一部分: F
例如,现在我有一个“root.exp”期望脚本如下: spawn ssh user@ip expect "Password:" send "password" 然后,我要发送到这个ssh服务器的exp
您好,我是 Expect 脚本编写的新手,我一直在尝试使用以下方法将 IP 地址获取到变量中: set timeout -1 spawn $env(SHELL) match_max 100000 se
expect.anything() 不适用于 expect.toBe(),但适用于 expect.toEqual() test("this will pass", () => { expect("
我有一个如下所示的简单脚本,从命令行读取 2 个数字并将它们加在一起: $cat runexp.sh #!/bin/bash echo "read 1st number" read n1 echo "
当 Linux 机器的 $IP 登录后询问密码时,下面的 expect 脚本工作正常 但在某些情况下,某些Linux机器不需要ssh密码(我们可以不用密码登录), 所以我需要更改我的期望脚本以支持没有
我正在尝试使用 expect 远程登录服务器并更改用户密码。该应用程序要求,如果您要更改的密码包含特殊字符,则将其引用。问题是,还需要引用 expect send 语句,当我尝试将两者结合起来时,脚本
下面这个简单的 expect 脚本的目标是获取远程机器上的 hostname 名称 有时期望脚本无法执行到 $IP_ADDRESS 的 ssh(因为远程机器不活动等) 所以在这种情况下,expect
我试图创建一个宏来替换, first: Some(first.as_ref().parse::().expect("Could not parse 'first'")) 我在其他模块(如 Clap w
我是一名优秀的程序员,十分优秀!