Javascript events Onblur事件在使用Javascript创建新的动态输入之前激发

Javascript events Onblur事件在使用Javascript创建新的动态输入之前激发,javascript-events,Javascript Events,我正在向表单动态添加文本输入。新输入也会获得焦点。在添加onblur事件时,onblur事件似乎会在添加输入后立即触发。为了测试这一点,我为onblur事件添加了一个警报。此时会出现警报,只有在单击“确定”后,才会创建新的输入。这在IE、Firefox和Opera中都会发生 下面是我正在使用的代码。为了便于阅读,我删除了所有其他代码 这是因为您正在使用alertwoot来指定onblur事件,而不是函数{alertwoot;}。 将代码更改为: function addinput () {

我正在向表单动态添加文本输入。新输入也会获得焦点。在添加onblur事件时,onblur事件似乎会在添加输入后立即触发。为了测试这一点,我为onblur事件添加了一个警报。此时会出现警报,只有在单击“确定”后,才会创建新的输入。这在IE、Firefox和Opera中都会发生

下面是我正在使用的代码。为了便于阅读,我删除了所有其他代码


这是因为您正在使用alertwoot来指定onblur事件,而不是函数{alertwoot;}。 将代码更改为:

function addinput () {
    var inpmaster = document.getElementById("inpMaster");
    var myinput = document.createElement("input");
    myinput.id = "myfield"+count;
    myinput.name = "myfield"+count;
    myinput.type = "text";
    myinput.onblur = function(){alert("woot");};
    inpmaster.parentNode.insertBefore(myinput,inpmaster);
    inpmaster.disabled="disabled";
    myinput.focus();
    count++;
};
<body>

    <form action="" method="post"  id="admin">
        <input id="inpMaster" type="text" name="prodDesccc" onfocus="addinput();" />
    </form>

</body>
function addinput () {
    var inpmaster = document.getElementById("inpMaster");
    var myinput = document.createElement("input");
    myinput.id = "myfield"+count;
    myinput.name = "myfield"+count;
    myinput.type = "text";
    myinput.onblur = function(){alert("woot");};
    inpmaster.parentNode.insertBefore(myinput,inpmaster);
    inpmaster.disabled="disabled";
    myinput.focus();
    count++;
};