我想发送一个带参数的网址,这些参数是一个带有javascript的表单所采用的值,我想用JSON来做,但是当我调试时我看到这个错误:未捕获的ReferenceError:名称未定义..
function recup()
{
var selectElmt = document.getElementById("name");
var selectcat = document.getElementById("msg");
var name = selectElmt.options[selectElmt.selectedIndex].value;
var msg = selectcat.options[selectcat.selectedIndex].value;
}
function go() { // button send who call the function go
var p_url="http://mysite.com/class?name=" + name + "&message=" + msg +
$.getJSON(p_url, {
}).done(function( data ) {
$.each(data, function (key, field) {
alert(field);
});
});
return false;
}
调用值名称和消息时出现语法错误,但我不知道如何解决它或在go函数中
答案 0 :(得分:0)
你有两个错误,关闭大括号和加号字符,代码应该是:
var msg = "hello"; // i just simplified the value
var name = "test";
function go() { // button send who call the function go
var p_url="http://mysite.com/class?name=" + name + "&message=" + msg;
$.getJSON(p_url, {
}).done(function( data ) {
$.each(data, function (key, field) {
alert(field);
});
});
return false;
}
更新:您需要将名称和消息设为全局:
var name, msg;
function recup() {
var selectElmt = document.getElementById("name");
var selectcat = document.getElementById("msg");
name = selectElmt.options[selectElmt.selectedIndex].value;
msg = selectcat.options[selectcat.selectedIndex].value;
}
function go() { // button send who call the function go
var p_url="http://mysite.com/class?name=" + name + "&message=" + msg;
$.getJSON(p_url, {
}).done(function( data ) {
$.each(data, function (key, field) {
alert(field);
});
});
return false;
}
和recup
需要在go
答案 1 :(得分:0)
这两个变量在另一个函数中
嗯,这解释了。另一个函数无法访问函数本地的变量。
您必须在两个函数共享的范围中定义变量。这可能是全局范围,但您应该避免创建全局变量(不管怎样,您不能拥有名为name
的全局变量,因为它已经存在)。
如果要为更高范围内的变量指定值,请使用name = ...;
代替var name = ...;
。
示例:
(function() {
// create a new scope so that we don't pollute the global scope
// this variable can be accessed by both functions
var answer;
function foo() {
// don't use `var` here, otherwise you create a local variable which
// shadows the variable with the same name in a higher scope
answer = 42;
}
function bar() {
alert(answer);
}
foo();
bar();
}());