Событие Onblur срабатывает перед созданием нового динамического ввода с использованием Javascript - PullRequest
0 голосов
/ 24 декабря 2010

Я динамически добавляю текстовые вводы в форму.Новый вход также получает фокус.Однако при добавлении события onblur событие onblur срабатывает, как только ввод добавлен.чтобы проверить это, я добавил предупреждение для события onblur.Появляется предупреждение, и только после нажатия OK создается новый ввод.Это происходит в IE, Firefox и Opera.

Ниже приведен код, который я использую.Для удобства чтения я удалил весь другой код.

""

<script type="text/javascript">
var count = 1;
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 = alert("woot");
    inpmaster.parentNode.insertBefore(myinput,inpmaster);
    inpmaster.disabled="disabled";
    myinput.focus();
    count++;
};
</script>

<body>

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

</body>

1 Ответ

0 голосов
/ 24 декабря 2010

Это потому, что вы используете alert ("woot") для назначения события onblur вместо function () {alert ("woot");} Измените свой код на:

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++;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...