Javascript保存,擦除和重新加载输入值

时间:2016-07-24 22:04:58

标签: javascript

我的脚本有问题。我想按此顺序执行以下步骤:
1.将文本保存在输入字段中 2.删除输入字段中的所有文本 3.重新加载之前在输入字段中删除的相同文本。

我的脚本的问题是ug() - 函数在我的文本框中写入undefined而不是应该存储在var exput中的字符串。然而,alert(exput)向我显示了正确的内容。 非常感谢帮助。而且我确信有更好的方法可以做到这一点,我对这些东西都很陌生。

HTML

<textarea  id="a" style="width: 320px; height: 200px;"></textarea>
<input type="checkbox" id="remember" onclick="merker();deleter();ug()" />

的Javascript

function merker() {
    var merkzeug = document.getElementById('a').value;
    ug(merkzeug);
};

function deleter() {
      if(document.getElementById('remember').checked == true)
      {
        document.getElementById('a').value = "";
      }
      else {document.getElementById('a').value = "";
      }
    };

function ug(exput) {
    alert(exput);
    document.getElementById('a').value = exput;
};

3 个答案:

答案 0 :(得分:1)

您的代码在onclick事件中调用merker(); deleter(); ug();,但ug()已调用merker()。你应该这样做:

&#13;
&#13;
function merker() {
    var merkzeug = document.getElementById('a').value;
    deleter();
    ug(merkzeug);
};

function deleter() {
      if(document.getElementById('remember').checked == true)
      {
        document.getElementById('a').value = "";
      }
      else {document.getElementById('a').value = "";
      }
    };

function ug(exput) {
    alert(exput);
    document.getElementById('a').value = exput;
};
&#13;
<textarea  id="a" style="width: 320px; height: 200px;"></textarea>
<input type="checkbox" id="remember" onclick="merker();" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我改变了你的Javascript:

function merker() {
  merkzeug = document.getElementById('a').value;//global variable without var
  ug();//why You use it here? I think only for test. So delete it after.
};

function deleter() {
  if(document.getElementById('remember').checked == true)
  {
    document.getElementById('a').value = "";
  }
  else {document.getElementById('a').value = "";
  }
};

function ug() {
  alert(merkzeug);
  document.getElementById('a').value =merkzeug;
};

代码问题:

  • 方法 ug 与参数一起使用而没有参数(我改为没有)
  • 要恢复已删除的值,必须将其保存到某个变量,我保存到全局 merkzeug 变量 - 这不是一个好习惯,但在这种情况下就足够了
  • 接下来我使用 merkzeug 在ug()函数中恢复textarea中的值
  • 我不知道你为什么两次使用ug()?也许删除其中一个是好事。

在plunker中 - https://plnkr.co/edit/fc6iJBL80KcNSpaBd0s9?p=info

答案 2 :(得分:0)

问题是:你在最后一个ug函数中传递未定义的变量:

你这样做:merker(价值) - &gt; UG(值);删除(); UG(/ *不* /);

或者您将merkzeung变量设置为全局变量,或者永远不会在您的输入中重新插入:

var merkzeug = null;
function merker() {
    merkzeug = document.getElementById('a').value;
    ug(merkzeug);
};

function deleter() {
      if(document.getElementById('remember').checked == true)
      {
        document.getElementById('a').value = "";
      }
      else {document.getElementById('a').value = "";
      }
    };

function ug(exput) {
    if (typeof exput === 'undefined') exput = merkzeung;
    alert(exput);
    document.getElementById('a').value = exput;
};