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