首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AngularJS和Tab顺序(禁用按钮)

AngularJS和Tab顺序(禁用按钮)
EN

Stack Overflow用户
提问于 2014-05-21 11:53:18
回答 1查看 5.6K关注 0票数 3

我有一张表格,我只使用TAB导航。选项卡顺序应该是input > select >按钮,但是由于SUBMIT上的ng-禁用,在某些浏览器上,选择之外的Tab会把您踢到其他地方。

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div ng-app="myApp">
    <div ng-controller="FirstCtrl">
        <form name="myForm" ng-submit="submit()" novalidate>    
            First Name: <input type="text" ng-model="Data.FirstName" required><br>
            Last Name: <select ng-model="Data.LastName" required>
                <option value="Bigglesworth">Bigglesworth</option>
                <option value="Burgermeister">Burgermeister</option>
            </select><br>
            <input type="submit" value="Submit" ng-disabled="myForm.$invalid" />
        </form>
    </div>
</div>

JS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var myApp = angular.module('myApp', []);

myApp.factory('Data', function(){
    return {
        FirstName: '',
        LastName: ''
    };
});

myApp.controller('FirstCtrl', function( $scope, Data ){
    $scope.Data = Data;
    $scope.submit = function() {
        console.log('you just submitted, foolio');
    }
});

JsFiddle在这里。

在Mac上,最后一个选项卡在启用submit按钮之前将您踢到地址栏。Mac就像你所期望的那样工作,在“最后”选项卡之后,专注于提交按钮。我知道Windows很简陋,但没有确切的规格可供发布。

的想法?我怎样才能以一种防伪的方式做到这一点呢?

编辑我选择了@David .的答案,因为它是最好的角度解决方案。最后,我在提交按钮之后使用了一个有点隐藏的元素,这样焦点就会保持在相同的区域内。我知道,这很糟糕,但对于一个紧迫的截止日期来说,这是可行的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h3><button class="fakebtn_hack">Confirmation</button></h3>
<style>.fakebtn_hack {background:none; border:none; color: #FF6319; cursor: default; font-size: 1em; padding: 0;}</style>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 20:46:58

这是因为Firefox不会在select的键驱动更改上发送更改事件。只有单击选项卡才能看到更改,因此在浏览器处理选项卡之后才启用submit按钮(并将焦点发送到其他元素,例如地址栏)。W3C标准建议在控件失去焦点之前不要发送事件,但是Chrome会发送任何更改,如果更改是鼠标驱动的,火狐就会发送。

有关更多信息,请参见angularjs问题跟踪器:https://github.com/angular/angular.js/issues/4216

正如问题跟踪器中所建议的那样,通过以下select指令(http://jsfiddle.net/j5ZzE/)手动发出更改事件来解决它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myApp.directive("select", function () {
    return {
        restrict: "E",
        require: "?ngModel",
        scope: false,
        link: function (scope, element, attrs, ngModel) {
            if (!ngModel) {
                return;
            }
            element.bind("keyup", function () {
                element.trigger("change");
            })
        }
    }
})

需要在JQuery之前加载AngularJS才能使trigger函数在element对象上可用。

手动包含一个空选项(<option value=""></option>)在您的选择或第一个选项将自动选择时,控件收到焦点。

与默认行为不同,此空选项在选择实物选项后不会消失。我认为您可以通过ng-optionsng-repeat声明所有选项,然后在选择了真正的选项后从绑定范围中删除空选项,但我从未尝试过。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23792570

复制
相关文章
scrapy 传参
当爬虫上线时难免会希望动态传参,下面跟着小二一起学传参吧,喽喽喽! 直接上代码: 自己写的spider class MWMSpider(scrapy.Spider): name = 'mwm_flowers_spider' def __init__(self, **kwargs): self.city_name = kwargs['city_name'] self.run_time = kwargs['run_time'] self
shengjk1
2018/10/24
1.7K0
linux如何将输出重定向到文件和标准输出
调用ls -al > rumenz.txt会将来自该命令的任何输出重定向到指定的文件,有没有办法将输出重定向到文件并将其显示在标准输出上? > ls -al > rumenz.txt 上面的命令执行后,数据被输入到rumenz.txt文件,屏幕没有任何输出,如果既想输入到文件又想输入到屏幕,请使用如下的方法. 使用tee 如果您只关心标准输出 > ls -al | tee rumenz.txt 如果要包含 stderr,请执行以下操作,会覆盖之前的数据 > ls -al 2>&1 | tee rumen
入门笔记
2022/06/02
5.4K0
linux如何将输出重定向到文件和标准输出
原文链接:https://rumenz.com/rumenbiji/linux-file-stdin-stdout.html
入门笔记
2021/11/26
5.1K0
Qmake设置输出文件路径与名字
通过设置Qt项目文件来设置程序/库的生成路径与名字。 设置输出名字 Test为设置输出名字; 如果是执行文件则自动为程序添加后缀(.exe),如果是库文件则自动为库添加后缀(.dll)和 libxxx.a(这里是 libTest.a)名字。 TARGET = Test 设置输出路径 输出为 .pro项目所在的Test目录下。 $$PWD意思为当前目录。 DESTDIR = $$PWD/Test 另外 TEMPLATE = app # 设置为执行文件工程TEMPLATE = lib # 设置为库文件工程
Qt君
2019/07/15
3.4K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
ls按时间排序输出文件列表
ls按时间排序输出文件列表 首先,ls --help查看ls相关的与时间排序相关的参数: > ls --help|grep -E "time|sort" 如果不指定 -cftuSUX 或 --sort 任何一个选项,则根据字母大小排序。   -c                         配合 -lt:根据 ctime 排序及显示 ctime (文件                                配合 -l:显示 ctime 但根据名称排序                      
joshua317
2018/04/13
1.3K0
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/07/14
1.7K0
如何将 Linux 命令输出重定向到文件?
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/08/03
1.9K0
如何将 Linux 命令输出重定向到文件?
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.2K0
Scrapy输出中文保存中文
scrapy在保存json文件时容易乱码 settings.py文件改动: ITEM_PIPELINES = { 'tutorial.pipelines.TutorialPipeline': 300, } pipeline.py文件改动: import json import codecs class TutorialPipeline(object): def __init__(self, spider): self.file = codecs.open('data_cn
林清猫耳
2019/03/04
2.8K0
python中如何定义函数的传入参数是option的_如何将几个参数列表传递给@ click.option…
如果通过使用自定义选项类将列表格式化为python列表的字符串文字,则可以强制单击以获取多个列表参数:
Java架构师必看
2021/08/23
7.7K0
msbuild 修改 VisualStudio 文件复制到输出目录的路径
在默认的 VisualStudio 可以右击任意的文件,让这个文件在编译时复制到输出目录,但是这个选项将会在复制到输出目录时带上这个文件所在 VisualStudio 的文件夹结构。本文告诉大家几个方法让 VisualStudio 的文件可以在编译时输出到自定义的任意路径
林德熙
2020/02/17
3.6K1
力学概念| 直接传力路径
力的自然属性是尽快传到支座。因此,只要有可能,主要传力路径就是接地的直杆。来看下面的例子。
fem178
2023/09/21
8800
力学概念| 直接传力路径
手把手教你用Python实现分布式爬虫(四) - scrapy爬取技术文章网站
搭建scrapy的开发环境,本文介绍scrapy的常用命令以及工程目录结构分析,本文中也会详细的讲解xpath和css选择器的使用。然后通过scrapy提供的spider完成所有文章的爬取。然后详细讲解item以及item loader方式完成具体字段的提取后使用scrapy提供的pipeline分别将数据保存到json文件以及mysql数据库中.
JavaEdge
2019/03/25
1.8K0
Python分布式爬虫框架Scrapy 打造搜索引擎(四) - 爬取博客网站
搭建scrapy的开发环境,本文介绍scrapy的常用命令以及工程目录结构分析,本文中也会详细的讲解xpath和css选择器的使用。然后通过scrapy提供的spider完成所有文章的爬取。然后详细讲解item以及item loader方式完成具体字段的提取后使用scrapy提供的pipeline分别将数据保存到json文件以及mysql数据库中.
JavaEdge
2022/12/15
1.1K2
Python分布式爬虫框架Scrapy 打造搜索引擎(四) - 爬取博客网站
python 列表list输出形式
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
用户7886150
2021/01/09
1.5K0
vue 中路径props的传参
第一种:单一参数 { path: '/news/:id', //模板props中也需要是id props:true, name:news, component: news } 第二种:多个参数 { path: '/news/:id', props:function(route){ console.log(route); return { id:route.params.id, username:route
青梅煮码
2023/03/02
4350
vue 中路径props的传参
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2K0
React篇(029)-如何将参数传递给事件处理程序或回调函数?
你可以使用箭头函数来包装事件处理器并传递参数: <button onClick={() => this.handleClick(id)} /> 这相当于调用 .bind: <button onClick={this.handleClick.bind(this, id)} />
齐丶先丶森
2022/05/12
3.7K0
点击加载更多

相似问题

如何允许wget递归下载整个目录而不是"index.html“文件

10

用wget下载

20

指定wget下载到

20

wget下载Ubuntu Repo

10

wget无法下载映像

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文