document.getElementById('textbox')。focus()在提交表单后无法正常工作

时间:2017-03-30 13:32:27

标签: javascript html forms focus

我正在尝试实现一个简单的表单,我试图在提交后将焦点设置在表单中的第一个文本框中,它只是不起作用。我无法在此网站上使用代码段,因为我使用的是localStorage,并且它不允许我使用它。)

这是我在Codepen上的代码:http://codepen.io/anon/pen/ZemVpz

以下是我的HTML如何快速参考:

document.getElementById('formBookmark').addEventListener('submit', addBookmark);

function addBookmark(e) {
    var siteName = document.getElementById('txtSiteName').value;
    var siteUrl = document.getElementById('txtSiteUrl').value;
    if (!validate(siteName, siteUrl)) {
        alert("Please fill the blank fields");
        return;
    }

    var newBookmark = {
        siteName: siteName,
        siteUrl: siteUrl
    }

    var bookmarks = getlocalBookmarks() || [];

    bookmarks.push(newBookmark);
    localStorage.setItem('tf-bookmarks',JSON.stringify(bookmarks));
    //trying to set focus here
    document.getElementById(formBookmark).reset();
    document.getElementById("txtSiteName").focus();
    
    fetchBookmarks();
    e.preventDefault();
   
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<form id="formBookmark">
                <div class="form-group">
                    <label for="txtSiteName">Site Name:</label>
                    <input type="text" name="txtSiteName" id="txtSiteName" class="form-control" placeholder="Google" />
                </div>
                <div class="form-group">
                    <label for="txtSiteUrl">Site Url:</label>
                    <input type="text" name="txtSiteUrl" id="txtSiteUrl" class="form-control" placeholder="http://google.com"/>
                </div>
                <button class="btn btn-success" id="btnAddLink" type="submit">Add Bookmark</button>
            </form>

我可以使用body onload事件来执行此操作,但如果页面上有多个表单,该怎么办?为什么通过JS设置焦点的代码行不起作用?

谢谢。

1 个答案:

答案 0 :(得分:2)

不用担心,这只是一个小小的错字 - 你忘了在“书签”附近添加引号。这里:

//trying to set focus here
document.getElementById(formBookmark).reset();
document.getElementById("txtSiteName").focus();

不要忘记使用&#39;开发人员工具&#39;控制台快速捕获这样的错误。 只是为了完成Chrome&#39;开发人员工具&#39;可以在这里找到:
enter image description here

现在控制台清楚地显示你的代码崩溃.reset()在你尝试.focus()之前只调用1行:

FacebookApplication.VerifyAuthentication(_httpContext, GenerateLocalCallbackUri()) return null on Facebook