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