从javascript调焦按钮而不点击它

时间:2012-09-25 14:12:52

标签: javascript button focus

我打电话

element.focus();

where元素是type = button的HTMLInputElement。 但随后浏览器点击按钮!这是在mozilla和chrome。

如何通过选择突出显示按钮,但不启动点击事件?

2 个答案:

答案 0 :(得分:1)

没有.focus()没有点击按钮或提交表单:http://jsbin.com/onirac/1/edit

它完全符合您的要求。

答案 1 :(得分:1)

嗯,我已经确定了原因。 我正在处理Enter键的onkeydown事件。 解决方案是使用 e.preventDefault();

function ConvertEnterToTab(s, e, numSkipElements) {
            var keyCode = e.keyCode || e.htmlEvent.keyCode;
            if (keyCode === 13) {
                var tabIndex = s.tabIndex || s.inputElement.tabIndex;
                if (numSkipElements == undefined) {
                    numSkipElements = 0;
                }

                var nextElement = FindNextElementByTabIndex(tabIndex + numSkipElements);
                if (nextElement != undefined) {
                    nextElement.focus();
                    return e.preventDefault ? e.preventDefault() : e.htmlEvent.preventDefault(); // this is the solution
                }
            }
        }

        function FindNextElementByTabIndex(currentTabIndex, maxTabIndex) {
            if (maxTabIndex == undefined) {
                maxTabIndex = 100;
            }

            var tempIndex = currentTabIndex + 1;
            while (!$('[tabindex='+ tempIndex+ ']')[0] || tempIndex === maxTabIndex) {
                tempIndex++;
            }

            return $('[tabindex=' + tempIndex + ']')[0];
        }