阻止来自最大输入jquery的按钮

时间:2017-09-18 18:28:29

标签: javascript jquery

我创建了三个输入字段a,b & ca是数字输入字段,b & c是隐藏的输入字段,c具有静态值。 a生成b输入字段的值,例如当您在a上输入1时,b值变为10,如果输入2,则生成{{1} } = value = 20即b = b.val()它工作正常。但是,当用户不在a.val()*10上输入并且输入结果a越过b.val()时,我想阻止提交按钮。我写了一段代码,但它没有用。我弄乱了什么吗?我无法在控制台上看到任何错误。请建议我:

c.val()

2 个答案:

答案 0 :(得分:1)

使用隐藏字段似乎有点不必要的间接。这是一个更简单的版本,再次假设您希望处理“keyup”事件而不是触发它。

$('#a').on('keyup', function() {
  var val = parseInt($(this).val()) * 10;
  if ($(this).val() && parseInt(val) <= 100)
    $('#m-submit').prop('disabled', false);
  else
    $('#m-submit').prop('disabled', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='number' name='a' id='a' />
<button id='m-submit' disabled>Submit</button>

答案 1 :(得分:0)

你需要附加一个函数来处理#a的keyup事件,如果你想用数字比较输入值,你也应该使用parseInt()。像这样的东西:

&#13;
&#13;
$('#m-submit').prop('disabled',true);

$('#a').on('keyup', function(){
  $('#b').val(parseInt($(this).val())*10);
  if($(this).val() && parseInt($('#b').val()) <= parseInt($('#c').val()))
    $('#m-submit').prop('disabled',false);
  else
    $('#m-submit').prop('disabled',true);
   
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='number' name='a' id='a' />
<input type='hidden' value='' name='b' id='b' />
<input type='hidden' value='100' name='c' id='c' />
<button id='m-submit'>Submit</button>
&#13;
&#13;
&#13;