以编程方式将onblur事件分配给输入框

时间:2015-09-02 10:49:25

标签: javascript onblur

以下代码用输入框替换锚元素并为其分配ID。我也想给它分配一个onblur事件,但是无法让它工作。 newElement.onblur = texOnBlur(this)); 欢迎大家帮忙。

function replaceElement(e) {
    selectedElement = e.id
    var newElement = document.createElement("input");
    newElement.setAttribute("id", selectedElement);
    newElement.onblur = texOnBlur(this));

    newElement.value = document.getElementById(selectedElement).innerHTML; 
    var oldElement = document.getElementById(selectedElement);
    var parentDiv = oldElement.parentNode
    parentDiv.replaceChild(newElement, oldElement);

    document.getElementById(selectedElement).style.width = "45px"; 
    document.getElementById(selectedElement).style.height = "12px";
}

3 个答案:

答案 0 :(得分:2)

正如您所见http://www.w3schools.com/jsref/event_onblur.asp

object.onblur=function(){myScript};

你应该为.onblur事件分配一个函数,你分配了函数结果。

答案 1 :(得分:1)

尝试这个

newElement.addEventListener("blur", function(){
     // do stuff
     texOnBlur(this);
     alert("Done");
});

答案 2 :(得分:1)

您当前正在引用textOnBlur函数的结果而不是函数本身。

你应该写:

newElement.onblur = textOnBlur;

this应自动引用textOnBlur函数中的输入元素。