onclick后更改输入提交值

时间:2015-09-15 14:20:02

标签: onclick

我希望在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`

1 个答案:

答案 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的原因

希望这会有所帮助..让我知道:)。