Javascript 同一页面上的多个表单在提交前集中在同一输入上

Javascript 同一页面上的多个表单在提交前集中在同一输入上,javascript,jquery,html,Javascript,Jquery,Html,我有一个问题,我在同一页上有多个表单,我想在提交表单之前将焦点放在同一输入字段上,但如果我提交表单,则焦点将从该位置丢失。 我正在使用更多具有相同字段的表单。如“待售商品”销售字段“商品名称”、“商品价格”、“商品数量”,当我更改数量时,然后提交该表单我希望在重新加载页面后,焦点保持在相同的数量字段上 这是两个不同的形式,当我改变数量的第一个领域,然后提交这张表格,我希望它将集中在相同的领域后,重新加载页面 如果有,请帮助我。每次使用JS sessionstorage API单击重点输入字段时,

我有一个问题,我在同一页上有多个表单,我想在提交表单之前将焦点放在同一输入字段上,但如果我提交表单,则焦点将从该位置丢失。 我正在使用更多具有相同字段的表单。如“待售商品”销售字段“商品名称”、“商品价格”、“商品数量”,当我更改数量时,然后提交该表单我希望在重新加载页面后,焦点保持在相同的数量字段上 这是两个不同的形式,当我改变数量的第一个领域,然后提交这张表格,我希望它将集中在相同的领域后,重新加载页面
如果有,请帮助我。

每次使用JS sessionstorage API单击重点输入字段时,请尝试缓存该字段

var els = $('input, select');
els.each(function(i){
    $(this).on('focus', function(){
        sessionStorage.setItem('focused', i);
    })
})
然后,当页面重新加载时,从sessionstorage中获取条目并将焦点赋予同一元素

$(function(){
    var index = parseInt(sessionStorage.getItem('focused'));
    var els = $('input, select');
    $(els[index]).focus();
})
更可靠的解决方案是缓存输入字段的唯一id(如果有),而不是索引编号。通过这种方式,你可以将一个事件附加到身体上,并倾听焦点

$('body').on('focus', 'input, select', function(e){
    sessionStorage.setItem('focused', e.target.id);
});
然后在页面加载时获取缓存的id

$(function(){
    var id = sessionStorage.getItem('focused');
    $('#'+id).focus();
})

重新加载页面后维护信息需要存储,例如使用cookie、本地存储或服务器端存储。您是如何尝试这样做的?根据@isherwoodi的评论,我无法理解如何缓存聚焦的输入字段。你能解释一下吗?谢谢,它已经做了,但它已经做了,但它在选择字段上不起作用。这里也是列表中的选择字段form@NadeemIjaz我已经更新了我的答案,包括选择元素。