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足够了。不管怎样,我怀疑刚刚发布的答案可能已经找到了答案。