【问题标题】:Bootstrap changing keyboard tab key behavior to horizontalBootstrap 将键盘 Tab 键行为更改为水平
【发布时间】:2023-03-19 06:09:01
【问题描述】:

由于引导带的设计,键盘上的 Tab 键是垂直(col wise)而不是水平的。

我可以在不改变设计的情况下使键盘 Tab 键行为水平(默认行为)

这是代码部分。

<div class="col-md-4">
    <div class="form-group col-md-12">
        <span class="col-md-6">
            <select ng-model="typeId" required=""><option value="" class="" selected="selected">--SELECT--</option>
                <option label="Employment" value="number:2">Employment</option>
                <option label="Female" value="number:3">Female</option>
                <option label="Food" value="number:4">Food</option>
                <option label="Male" value="number:1">Male</option>
            </select>
        </span>
    </div>

    <div class="form-group col-md-12" ">
        <span class="col-md-6">
             <input type="text" name="nameAr" required="" ng-maxlength="250">
        </span> 
    </div>

    <div class="form-group col-md-12">
        <span class="col-md-6">
            <select ng-model="nId" ng-options="non.nId as non.nlity for non in List" ng-invalid-required" name="nationality" id="nationality" required="">
            </select>
        </span>
    </div>

    <div class="form-group col-md-12">
    </div>
    <div class="form-group col-md-12">
        <label class="col-md-6" for="profession">Profession:</label>
            <span class="col-md-6">
                <select ng-model="rpationId" ng-options="ocp.rpationId as ocp.occupation for ocp in occupationList" >\
                </select>
            </span>
        </span>
   </div>
</div>


<div class="col-md-4">
     <div class="form-group col-md-12" ng-class="{ 'has-error' : regCtrl.userForm.mmpId.$invalid &amp;&amp; regCtrl.userForm.mmpId.$dirty }">
          <label class="col-md-6" for="mmpId">MMP Id: *</label> 
                <span class="col-md-6">
                    <input type="text" name="mmpId" class="form-control ">
                </span> 
                 <div class="col-sm-6 error-color ng-scope ng-active" >
                        <span ng-message="required" class="ng-scope">This field is required</span>
                </div>
    </div>

    <div class="form-group col-md-12" >
         <label class="col-md-6" for="name">Name: *</label> 
              <span class="col-md-6">
                    <input type="text" name="name" ng-maxlength="250">
                </span> 
    </div>

    <div class="form-group col-md-12" >
        <label class="col-md-6" for="dob">Date of Birth: *</label> 
            <span class="col-md-6">
                    <input type="date" name="dob"   ng-maxlength="11">
                        </span> 

    </div>

    <div class="form-group col-md-12" ng-class="">
         <label class="col-md-6" for="contactNo">Contact No: *</label> 
                <span class="col-md-6">
                    <input type="number" name="contactNo" required="">
                </span> 
    </div>
</div>

【问题讨论】:

  • 你说的是键盘tab键的行为吗?
  • 你试过 tabindex 吗?为它指定从 1 开始的值,以按您想要的顺序形成元素。
  • 除了 tabInex 还有其他选项吗,是的。但必须为每个元素付出
  • 浏览器在决定下一个焦点应该去哪里时遵循 DOM 的自然父/子顺序。所以你必须要么使用标签索引,要么开始编写一堆 javascript 来让焦点转到你想要的地方。另一种方法是放弃引导列并使用 flexbox 之类的东西来布局元素,以便 DOM 的自然顺序与您想要的 tab 顺序相匹配。
  • @user630209 我已经添加了答案。希望对您有所帮助。

标签: html css twitter-bootstrap angular-ui-bootstrap bootstrap-modal


【解决方案1】:

这是因为您对表单元素进行了分组。您正在按列对元素进行分组,因此选项卡按列工作。

您在第一个 col-md-4 和第二个 col-md-4 中分组了 4 个表单元素,因此默认选项卡控件将首先覆盖第一个 col-md-4 元素,然后是下一个 col-md- 4个元素。 使用 tabindex 或将布局更改为按行排列,如下所示:

<div class="row">
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
    <div class="col-md-4">
        <div class="form-group col-md-12">
            <input type="text" name="nameAr" required="" ng-maxlength="250">
        </div>
    </div>
</div>

希望对你有帮助。

【讨论】:

  • 按行显示整个字段。
  • 您需要将表单元素分成多行。你可以为你所做的事情创建一个小提琴/plnkr吗?会改正的。
  • jsfiddle 新手无法添加这些 css
  • 我已对赞助商详细信息表进行了更改。请参阅plnkr.co/edit/leeK7iyCck845Go9bWRZ?p=preview。扩大预览窗口,您会注意到一行中的 3 个表单域和水平选项卡工作。您可以进行与此类似的其余更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2017-06-11
  • 2019-05-26
相关资源
最近更新 更多