簡體   English   中英

JavaScript不會將焦點傳遞給元素

[英]JavaScript will not pass focus to element

我在JavaScript中有以下函數if語句的每個部分都正確執行,除了將焦點返回給調用函數的元素。 它在IE或Fire Fox中不起作用,瀏覽器都沒有給我一個錯誤。 它對我來說正確的... 為什么它不起作用?

function check(x){

     //doing some stuff

     if (uc_check == false){
          window.alert('Houston, we have a problem.');
          document.getElementById(x).value = '';
          document.getElementById(x).focus(); //this line is not working 
     }
}

PS我從這樣的表單輸入調用此函數:

onchange="check(this.id)"

這里的問題是當onChange函數完成時,它將焦點設置為下一個元素。 因此,您在該函數中設置的任何焦點只會在onChange結束后消失。

你可以通過多種方式解決這個問題。 可能最容易使用超時。

將焦點線更改為以下內容:

var el = document.getElementById(x);
window.setTimeout(function(){el.focus();}, 100);

您已經有了對元素( this )的引用,因此您不需要傳遞id:

<input onchange="check(this);">

和JS:

function check(el) {
    if (uc_check == false) {
        el.value = '';
        el.focus();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM