javascript - 使用 "Tab"单击执行 "Enter"键的操作,在 Bootstrap 行内

标签 javascript jquery html twitter-bootstrap

我有一个 <div class = "row"></div>由Bootstrap提供,这一行有多个元素一个选择,两个按钮和多个输入。

<div class="row" id="productlist">
  <div class="col-md-6">
      <label>Producto</label><br/>
      <select class="select2_single form-control tg" id="product" name="product" size="4">
          <option>Seleccionar Producto</option>
          //PHP 
      </select>
      <br/>
      <button type="button" class="btn btn-default" id="print"><i class="fa fa-print"></i> Imprimir</button>
  </div>
  <div class="col-md-3">
      <label>Cantidad (Kilogramos)</label><br/>
      <input class="tg" type="text" placeholder="Cantidad" id="quantity" name="quantity"><br/>
      <label>Precio</label><br/>
      <input class="tg" type="text" placeholder="Precio" id="price" name="price"><br/>
      <label>Número de Rollos</label><br/>
      <input class="tg" type="text" placeholder="Número de Rollos" id="numrolls" name="numrolls"><br/>
  </div>
  <div class="col-md-3">
      <label>Observaciones</label><br/>
      <input class="tg" type="text" placeholder="Observaciones" id="remarks" name="remarks"><br/>
      <label>Número de Paquetes</label><br/>
      <input class="tg" type="text" placeholder="Número de Paquetes" id="numpackages" name="numpackages"><br/><br/>
      <button type="submit" class="btn btn-success fixedbutton" id="add">Agregar</button>
  </div>
</div>

我想执行与用户使用“Enter”时抛出“Tab 键”相同的操作,所以我制作了这个 jquery,问题可能是所有 div 都是多列,而不仅仅是一列。

 $('.tg').bind('keypress', function(event) {
  if(event.which === 13) {
    var nextItem = $(this).next('.tg');

    if( nextItem.size() === 0 ) {
      nextItem = $('.tg').eq(0);
    }
    nextItem.focus();
  }
});

此外,当输入为空并且用户单击添加按钮(id =“添加”)时,我会显示警报

最佳答案

在按键事件中,您可以使用 $($('.tg')[$('.tg').index(this)+1]); 获取具有类的下一个项目代码

这不会涵盖按钮。要覆盖按钮,您必须将类 tg 添加到按钮。现在,如果焦点在按钮上,那么如果您按下“Enter”键,将触发“click”事件。如果您不想在“Enter”键上触发点击事件,那么您可以使用以下代码片段。

$('.tg').bind('keypress', function(event) {
  if(event.which === 13) {
    var nextItem = $($('.tg')[$('.tg').index(this)+1]);
    if( nextItem.size() === 0 ) {
      nextItem = $('.tg').eq(0);
    }

    if($(this).attr('type') =='button'){
        event.preventDefault();
    }
    nextItem.focus();
  }
});

关于javascript - 使用 "Tab"单击执行 "Enter"键的操作,在 Bootstrap 行内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39136483/

相关文章:

javascript - D3.js 折线图 - 定位点

javascript - 如何将 "multiple"属性添加到动态生成的输入文件?

Javascript,while 循环返回

html - bootstrap - 子项填充父项的 100%,但不会更大

javascript - HighCharts图表导出(截图下载)不显示Navigator图

javascript - 如何使用 jQuery 检查图像是否加载?

javascript - 如何编写条件 - 如果当前日期和时间在 11 月最后一天之前 :59

javascript - 全屏在 IE 中不工作

javascript - 更改 chrome 扩展程序图标

html - 基于选择值的 CSS 背景颜色