使用javascript将焦点设置为web表单中的另一个字段

使用javascript将焦点设置为web表单中的另一个字段,javascript,Javascript,我有一个包含两个字段的web表单: 电子邮件 用户名 我想跟踪电子邮件字段中的用户输入,并在以“.com”结尾时将焦点设置为另一个字段“用户电子邮件” 使用JavaScript或jQuery的最佳方法是什么。这应该可以解决问题。当电子邮件输入的最后4个字母为“.com”时,焦点将放在用户名字段上 尽管如此,请考虑这可能导致的UX问题。在对您的问题的评论中,Quentin很好地解释了为什么这可能不值得实施 $('#email')。在('input',function()上{ email=this

我有一个包含两个字段的web表单:

  • 电子邮件
  • 用户名
  • 我想跟踪电子邮件字段中的用户输入,并在以“.com”结尾时将焦点设置为另一个字段“用户电子邮件”


    使用JavaScript或jQuery的最佳方法是什么。

    这应该可以解决问题。当电子邮件输入的最后4个字母为“.com”时,焦点将放在用户名字段上

    尽管如此,请考虑这可能导致的UX问题。在对您的问题的评论中,Quentin很好地解释了为什么这可能不值得实施

    $('#email')。在('input',function()上{
    email=this.value
    if(email.substr(email.length-4)=='.com')
    $('#username').focus()
    })

    正如@Quentin所提到的,由于(.com.au)等电子邮件类型,这不是一种最佳做法

    但是,如果您真的知道自己在做什么,那么这段代码就会满足您的需求

    //选择电子邮件输入
    const mail=document.getElementById('mail');
    //添加输入事件
    mail.addEventListener('input',e=>{
    //获得价值
    让value=e.target.value.trim();
    const regex=/.com$/ig;//匹配以.com结尾的任何字符串
    常数结果=正则表达式测试(值);
    //如果最后匹配.com,则将焦点添加到名称输入
    如果(结果){
    e、 target.nextElementSibling.focus();
    }
    });
    
    请不要这样做:-)让用户处理字段导航。如果有人有
    example@news.com.au
    (这是一个真正的域)。当有人键入
    .com
    时,跳转到另一个字段将违反最小惊喜原则,并且会有人在输入电子邮件地址后立即点击TAB,这将导致跳过一个字段。