我正在动态地向表单添加文本输入。新的输入也获得了关注。在添加onblur事件时,onblur事件似乎在添加输入后立即触发。为了测试这个,我为onblur事件添加了警报。出现警报,仅在单击“确定”后才会创建新输入。这种情况发生在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>
答案 0 :(得分:0)
这是因为你使用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++;
};