2016-07-24 71 views
0

我的腳本有問題。我想按照以下順序執行以下步驟:
1.將文本保存在輸入字段中。
2.刪除輸入字段中的所有文本。
3.重新載入之前在輸入字段中刪除的相同文本。Javascript保存,擦除和重新加載輸入值

我的腳本的問題在於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; 
}; 

回答

1

您的代碼調用在onclick事件merker(); deleter(); ug();,但ug()已經被merker()調用。你應該不是這樣:

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; 
 
};
<textarea id="a" style="width: 320px; height: 200px;"></textarea> 
 
<input type="checkbox" id="remember" onclick="merker();" />

+0

作品。謝謝!!只是爲了澄清。我得到了「undefined」,因爲我調用了函數ug()兩次?一旦進入onclick事件,然後進入merker()? – sojutyp

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; 
    }; 
    

    問題爭論而沒有爭論(我改爲無)

  • 恢復已刪除的值必須保存到某個變量,我救了全球merkzeug變量 - 這是不是在這種情況下
  • 下一個我用merkzeug好的做法,但足夠在ug()函數中恢復textarea中的值
  • 我不知道爲什麼你使用ug()兩次?也許刪除其中的一個是件好事。

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

0

的問題是:你通過在過去的UG功能未定義的變量:

你這樣做:MERKER(值) - > 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; 
};