在JQuery Steps中禁用左右键

时间:2017-12-11 16:24:37

标签: javascript jquery jquery-steps

我有一个包含三个步骤的Jquery Steps表单。 我想在最后一步中禁用左右键,这样我就可以保持同样的步骤。

$(function() {
  form_prop = $("#new_prop").show();
  form_prop.steps({
    headerTag: "h3",
    bodyTag: "fieldset",
    transitionEffect: "slideLeft",
    onStepChanging: function(event, currentIndex, newIndex) {

      if (currentIndex == 2) {
        form_prop.on('keyDown', function(event) {
          const key = event.key; // "ArrowRight", "ArrowLeft", "ArrowUp", or "ArrowDown"
          if (key == "ArrowRight" || key == "ArrowLeft") {
            // Disable Next and previous
          }
        });
      }
    }

  });
});

4 个答案:

答案 0 :(得分:2)

在jquery.steps.js中将enableKeyNavigation设置为false

答案 1 :(得分:1)

从文档中我看到您可以从return false事件中onStepChanging取消更改。

所以

$(function() {
  form_prop = $("#new_prop").show();
  form_prop.steps({
    headerTag: "h3",
    bodyTag: "fieldset",
    transitionEffect: "slideLeft",
    onStepChanging: function(event, currentIndex, newIndex) {

      if (currentIndex == 2) {
          return false;
      }
    }

  });
});

应该工作。

答案 2 :(得分:1)

首先请确保包含jquery.steps.js。 如果包含jquery.steps.min.js,请替换为jquery.steps.js 打开jquery.steps.js文件,将enableKeyNavigation更改为false enter image description here

答案 3 :(得分:0)

我试试:

$(function() {
  form_prop = $("#new_prop").show();
  form_prop.steps({
    headerTag: "h3",
    bodyTag: "fieldset",
    transitionEffect: "slideLeft",
    onStepChanging: function(event, currentIndex, newIndex) {

      if (currentIndex == 2) {
        form_prop.on('keyDown', function(event) {
          const key = event.key; // "ArrowRight", "ArrowLeft", "ArrowUp", or "ArrowDown"
          if (key == "ArrowRight" || key == "ArrowLeft") {
            event.preventDefault();// Disable Next and previous
          }
        });
      }
    }

  });
});