0

当您双击表格单元格并单击选项时,我有 javascript 创建一个通用选择框,当您单击一个选项时,选择框将被删除并记录选择的选项。表格单元格显示选定的选项。

但是,如果双击表格单元格并创建了选择框,但您只是单击选择框而不选择选项,则选择框仍然存在,并且页面的其余部分从那时起中断。

如果焦点丢失,我希望删除选择框,但适用于输入框的 onblur 方法似乎不适用于选择框。

有谁知道触发了什么事件?

双击表格单元格以创建选择框时的 Javascript 代码:

var object_input = document.createElement ("SELECT");   //Put an select box in the cell

object_input.setAttribute("name", "course_price_select");
object_input.setAttribute("id", "course_price_select");
object_input.style.width = (current_cell.clientWidth - 20) + "px";

object_input.attachEvent ("onblur", focus_lost);  
object_input.attachEvent ("onkeypress", checkForEnter);

这两行不行!(focus_lost 和 checkForEnter 方法以 alert('hi'); 开头,所以我知道它们没有被触发)

object_input.onchange = function() {focus_lost()};

//Populate with options....
4

1 回答 1

1

attachEvent是一个 IE 唯一的功能。您还应该使用 绑定您的事件addEventListener,例如:

if(object_input.addEventListener)
{
    object_input.addEventListener('blur', focus_lost);  
    object_input.addEventListener('keypress', checkForEnter);
}
else
{
    object_input.attachEvent('onblur', focus_lost);  
    object_input.attachEvent('onkeypress', checkForEnter);
}

你可以在这里看到一个 jsFiddle演示

您应该注意,addEventListener不需要在事件前面加上on,而需要attachEvent

于 2013-02-20T11:24:00.437 回答