Javascript 从最大输入jquery中防止按钮

Javascript 从最大输入jquery中防止按钮,javascript,jquery,Javascript,Jquery,我创建了三个输入字段,分别是a、b和ca是数字输入字段,b&c是隐藏输入字段,c具有静态值a生成b输入字段的值类似于当您在a上输入1时,b值变为10,如果您输入2,则生成b值=20,即b.val()=a.val()*10工作正常。但是我想防止当用户不在a上键入并输入结果b.val()时出现提交按钮。我写了一个代码,但它不起作用。我是不是搞砸了什么?我在控制台上看不到任何错误。请建议我: $('#m-submit').prop('disabled',true); var ainput= $('#a

我创建了三个输入字段,分别是
a、b和c
<代码>a是数字输入字段,
b&c
是隐藏输入字段,
c
具有静态值
a
生成
b
输入字段的值类似于当您在
a
上输入1时,
b
值变为10,如果您输入2,则生成
b
值=20,即
b.val()
=
a.val()*10
工作正常。但是我想防止当用户不在
a
上键入并输入结果
b.val()
时出现提交按钮。我写了一个代码,但它不起作用。我是不是搞砸了什么?我在控制台上看不到任何错误。请建议我:

$('#m-submit').prop('disabled',true);
var ainput= $('#a').keyup();
var binput= $('#c').val() >= $('#b').val();
if (ainput && binput) {
  $('#m-submit').prop('disabled', this.value == "" ? true : false);
}

<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>
$('m-submit').prop('disabled',true);
var ainput=$('#a').keyup();
var binput=$('#c').val()>=$('#b').val();
if(输入和输出(&B){
$('m-submit').prop('disabled',this.value==“”?true:false);
}
提交

您需要附加一个函数来处理
#a
的键控事件,如果您想以数字方式比较输入值,还应该使用
parseInt()
。大概是这样的:

$('m-submit').prop('disabled',true);
$('#a')。on('keyup',function(){
$('#b').val(parseInt($(this.val())*10);

如果($(this).val()&&parseInt($('#b').val())使用隐藏字段似乎有点不必要的间接操作。这里有一个更简单的版本,再次假设您希望处理“keyup”事件而不是触发它

$('a')。在('keyup',function()上{
var val=parseInt($(this).val())*10;

if($(this.val()&&parseInt(val)
var ainput=$('a').keyup()
为什么要手动触发一个keyup事件?你是想尝试处理这个事件吗?我也不确定它是否会返回一个值放入
ainput
。你的代码似乎脱离了上下文。如果有人照原样使用此代码,它将永远不会工作,因为在用户输入任何内容之前,代码似乎正在运行。我想这只是你真实代码的一小部分。一些上下文可能会有助于确定这段代码何时实际执行。@ADyson是的,这是我真实代码的一小部分。我的真实代码太长了。这很好,但一些上下文会更有用,你不需要发布整个内容来创建可复制、可运行的ex足够了。不管怎样,我怀疑刚刚发布的答案可能已经找到了答案。