因此,我想要的基本上是将javascript处理程序附加到窗体上,以便每当更改或单击窗体输入框/选择框之一时,将使用更改的元素的id调用此处理程序。

我对此感到疑惑的原因是因为我已经拥有大约50个输入框的表单,并且每次对50个输入框中的任何一个进行操作时,都需要将文本追加到其他文本框中。我知道可以通过将一个函数附加到50个文本框中来完成此操作,但似乎应该有一种更简单的方法?

最佳答案

您可以绑定到窗体上的keydown / keyup事件,然后查看srcElement或目标以找出实际修改了哪些输入。我认为您不能在表单元素上使用change

基本上:

function Bind() {
    var obj = document.getElementById("myForm");
    if (obj.addEventListener)
    {
        obj.addEventListener("keyup",Process,false);
        obj.addEventListener("keydown",Process,false);
    }
    else if (obj.attachEvent)
    {
        obj.attachEvent('onkeyup',Process);
        obj.attachEvent('onkeydown',Process);
    }
}
function Process(e) {
    if (!e) var e = window.event;

    var src;
    if (e.target)
        src = e.target;
    else if (e.srcElement)
        src = e.srcElement;

    // src now points to the input that was modified.
}

关于javascript - HTML表单处理程序是否可能或当前存在,如果可以,我将如何使用它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1359004/

10-16 11:27