选择JavaScript中的框触发器事件

Select Box Trigger Events in JavaScript

本文关键字:触发器 事件 JavaScript 选择      更新时间:2023-09-26

当双击表单元格时,我用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_lostcheckForEnter方法从alert('hi');开始,所以我知道它们没有被触发)

object_input.onchange = function() {focus_lost()};
//Populate with options....
    

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则要求。