我希望在onclick之后更改输入提交值,但它不起作用,我的代码如下:
window.callme = (function() {
var update = true;
return function(me) {
if(update) {
me.value = "Edit";
} else {
me.value = "update";
}
update = !update;
};
}());
<input type=submit name=update id=update class='wrap_2' value='update' onclick='callme(this);'/>"`enter code here`
答案 0 :(得分:2)
函数声明创建一个指向当前作用域中函数的变量。
在JavaScript中,每个函数都会创建一个新范围。
您正在为分配给callme的匿名函数的范围内创建函数。它不是一个全球性的。
onclick事件处理程序不在上述匿名函数的范围内,因此无法访问该变量。
请尝试类似这样的例子......
function callMe(){
alert("Inside the function");
this.value = "New Value";
}
window.onload = function(){
callMe();
document.getElementById("thisCall").onclick = callMe;
}
修改强>
这段代码:
document.getElementById("thisCall").onclick = callMe;
正在工作,因为它是在onload函数范围内编写的,其中定义了函数callMe。
如果你将它与onclick
属性一起使用它将无法工作,因为在全局范围内无法识别所述callMe()
,这就是为什么你有callMe is not defined
的原因
希望这会有所帮助..让我知道:)。