在函数调用期间阻止<input /> textField进一步输入文本

时间:2016-12-19 09:29:48

标签: javascript jquery

功能性:

用户拉动外部手柄,头奖卷轴将开始旋转。累积奖金外部手动电平通过USB连接,累积奖金卷轴的触发器通过键盘字符“*”旋转。

问题:

此时,无论何时用户拉动杠杆,文本字段都会输入“”以开始旋转累积奖金卷轴。但是,在旋转卷轴的任何位置,当用户再次拉动控制杆时,文本区域将有另一个输入“”,卷轴将继续旋转。

因此,我需要问一下,如果已经有一个初始的“”输入,或者一旦用户拉动手卷,我怎么能够停止在文本字段中输入“”字符第一次拉杆并输入文本字段中的第一个“”,无论用户在累积奖金旋转卷轴中拉多少次,文本字段都无法注册任何后续的“”。

代码:

/***================= JACKPOT GAME METHOD: TRIGGER JACKPOT SPIN
     WHEN LEVER IS PULLED: special key to trigger is "*"" ==========================================
     ===============================================================
     ===========================================================***/

 $("#GamePlayCodeField").on("input", function(e) {

   // start game on Lever Pull
   game.restart();
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="JackPotGamePage" align="center" style="position:absolute; width:1920px; height:1080px; background-repeat: no-repeat; z-index=1; top:0px; left:1921px; margin:auto;">


  <!-- INVISIBLE INPUT FIELD FOR "*", GamePLay when user pulls the lever -->

  <input type="text" id="GamePlayCodeField" style="position:absolute; top:-500px; left:0px; height:160px; width:520px; outline: 1; border: 1; font-size:70px; font-color:white; font-family:'Arial'; background: transparent; z-index:100;" autofocus src="lib/image/transparent.png">

  <!-- JackPot Reel GamePlay -->
  <div id="reels">
    <canvas id="canvas1" width="380px" height="300px"></canvas>;
    <canvas id="canvas2" width="380px" height="300px"></canvas>;
    <canvas id="canvas3" width="380px" height="300px"></canvas>;
  </div>
</div>

2 个答案:

答案 0 :(得分:0)

您可以在功能运行时disable input,并在功能完成后重新启用它。

$("GamePlayCodeField").attr("disabled","disabled");

功能完成后enable input

$("GamePlayCodeField").attr("disabled",false);

或者

$("GamePlayCodeField").removeAttr("disabled");

答案 1 :(得分:0)

如果您的问题是如何阻止用户向该字段添加任何内容,则答案设置为disabledreadonly属性:

$("selector-for-the-field").prop("disabled", true);
// or
$("selector-for-the-field").prop("readOnly", true);