在onclick事件上在javascript函数中传递对象
我试图将一个对象传递给一个javascript函数,该函数在单击链接时会触发。但不幸的是,我无法让它工作 以下是我的jsp文件中的代码:在onclick事件上在javascript函数中传递对象,javascript,jquery,jsp,jstl,Javascript,Jquery,Jsp,Jstl,我试图将一个对象传递给一个javascript函数,该函数在单击链接时会触发。但不幸的是,我无法让它工作 以下是我的jsp文件中的代码: <script type="text/javascript"> $(document).ready(function() { function tryToDoItTwice(obj) { var check = obj; if(check == null) {
<script type="text/javascript">
$(document).ready(function() {
function tryToDoItTwice(obj) {
var check = obj;
if(check == null) {
return true;
}
else {
alert("You're not allowed to do this twice!");
return false;
}
}
});
</script>
<a href="<c:url value="/somepath" />" onclick="javascript: tryToDoItTwice(${foo});">Try to do it twice</a>
$(文档).ready(函数(){
函数tryToDoItTwice(obj){
var检查=obj;
如果(检查==null){
返回true;
}
否则{
警告(“你不允许这样做两次!”);
返回false;
}
}
});
这里foo
指的是foo
类型的对象
有人能帮我理解我做错了什么吗
EDIT:Foo
是一个java对象。而${foo}
是引用foo
java对象的引用变量
谢谢。您的
check
变量是该函数的局部作用域,因此每次调用该函数时都会重新声明该变量(下次单击时不会存储您的值)
您需要扩展变量的范围
var check = null;
$(document).ready(function() {
function tryToDoItTwice(obj) {
check = obj;
if(check == null) {
return true;
}
else {
alert("You're not allowed to do this twice!");
return false;
}
}
});
另外,如果foo
存在于其他地方,您可能只想这样传入它:
您的check
变量是该函数的局部作用域,因此每次调用该函数时都会重新声明该变量(下次单击时不会存储您的值)
您需要扩展变量的范围
var check = null;
$(document).ready(function() {
function tryToDoItTwice(obj) {
check = obj;
if(check == null) {
return true;
}
else {
alert("You're not allowed to do this twice!");
return false;
}
}
});
另外,如果foo
存在于其他地方,您可能只想这样传入它:
您不能将JAVA对象直接传递给javascript。您需要以JSON的形式返回(查找GSON或Jackson以将对象转换为JSON)或将变量(非对象)传递给函数。您不能将JAVA对象直接传递给javascript。或者您需要以JSON的形式返回(查找GSON或Jackson以将对象转换为JSON)或将变量(而不是对象)传递给函数。我会说在JQuery之前先学习Javascript。什么是${foo}从未见过这种语法。此外,无需将javascript
放在onclick属性中。并且,给我们错误消息。我需要澄清..函数从未被正确调用?@Itay:它引用了Foo类型的对象。它在jsp页面上使用的表达式语言。我正在将此对象从控制器传递到此jsp页面$未定义
在不包含jquery.js时未定义。我想说在jquery之前学习Javascript。什么是${foo}从未见过这种语法。此外,无需将javascript
放在onclick属性中。并且,给我们错误消息。我需要澄清..函数从未被正确调用?@Itay:它引用了Foo类型的对象。它在jsp页面上使用的表达式语言。我正在将此对象从控制器传递到此jsp页面$未定义
在不包含jquery.js的情况下未定义。请不要看函数名。我认为他是从服务器端而不是客户端获得单击次数。请不要看函数名。我认为他是从服务器端而不是客户端获得单击次数。哎呀,我想我应该我在问题中明确提到了。谢谢。哦,我想我应该在问题中明确提到。谢谢。