TypeScript(JS)-从onchange函数中获取已更改的值

TypeScript (JS) - Getting changed value from onchange function

本文关键字:获取 函数 JS onchange TypeScript      更新时间:2023-09-26

我要做的是在HTMLInputElement上触发onchange事件后获取新值。我知道我可以通过使用element.value来获得它,但这在大局中是行不通的。请参阅下面的代码:

//This Works:
     elem.onchange = (ev: Event) => {
                    var newValue = (<HTMLInputElement>ev.srcElement).value; 
                    alert("Old: " + this._data[key] + ", New: " + newValue);
}
//Is there anyway I can get it to work like below? Currently I keep getting old values as new and old.
     elem.onchange = (ev: Event) => {
                    var attName = "checked"; //or "value"  for example
                    var newValue = ev.srcElement.getAttribute(attName); 
                    alert("Old: " + this._data[key] + ", New: " + newValue);
}

您不能使用getAttribute("checked")来判断是否选中了复选框。您需要使用checked属性:

elem.onchange = function (ev) {
    var element = <HTMLInputElement>ev.srcElement,
        newValue: string | boolean;
    if (element.type === "checkbox") {
        newValue = element.checked;
    }
    else {
        newValue = element.value;
    }
    alert("Old: " + this._data[key] + ", New: " + newValue);
};