Javascript 3个输入字段值与if语句一起添加

Javascript 3个输入字段值与if语句一起添加,javascript,jquery,calculation,Javascript,Jquery,Calculation,我有点困了。当一个输入字段被更改时,我希望能够计算所有输入字段,然后根据所有输入字段的结果生成一个If语句。在这一点上,任何建议都很有用 $('#form').on('change', function() { var a = $('#field1').val(); var b = $('#field2').val(); var c = $('#field3').val(); var $r = a + b + c; if ( $r.value == '3') { $(".text"

我有点困了。当一个输入字段被更改时,我希望能够计算所有输入字段,然后根据所有输入字段的结果生成一个If语句。在这一点上,任何建议都很有用

$('#form').on('change', function() { 
var a = $('#field1').val();
var b = $('#field2').val();
var c = $('#field3').val();
var $r = a + b + c;
if ( $r.value == '3')
  {
    $(".text").show();
  }
  else
  {
    $(".text").hide();
  }
 });
});
关于HTML。。我是为一个预先构建的表单而编写的。但这里是jist

<div id="form">
<input type="text" id="field1" value="0">
<input type="text" id="field2" value="0">
<input type="text" id="field3" value="0">
</div>
<div class="text">if all fields value = over 3, show this text</div>
更新:

按如下方式更改代码:

$('#form').on('change', 'input[type=text]', function() { 
var a = $('#field1').val();
var b = $('#field2').val();
var c = $('#field3').val();
var $r = a + b + c;
if ( $r.value == '3')
  {
    $(".text").show();
  }
  else
  {
    $(".text").hide();
  }
 });
});
让事件处理表单元素输入。

不要使用$r.value。应该只有$r

当您使用文本输入时,最好使用keyup而不是change函数

由于值是数字,所以使用parseInt将其从字符串转换为整数值

$'form'。在'keyup','input[type=text]'上,函数{ var a=parseInt$'field1'.val; var b=parseInt$'field2'.val; var c=parseInt$'field3'.val; var$r=a+b+c; 如果$r==3 { $.text.show; } 其他的 { $.text.hide; } }; .文本{ 显示:无; }
如果所有字段的值都大于3,则显示此文本您也可以提供html吗?很抱歉,刚刚用html更新了问题,问题在JQ附近,并且假设html在这种情况下不太重要。据了解,元素id为form没有更改事件。更改事件只对输入、选择……等元素起作用,代码测试等于3,但文本显示=超过3,预期的测试是什么?当总数为3或更高时,是否要显示?正好三点?高于3但不完全是3?是的,您应该使用parseInt$'field1'.val将a、b、c转换为int类型。val返回一个字符串。对不起,您能解释一下吗?我对parseInt$'field1'不太了解。val返回字符串类型。如果像1+2这样的加号字符串返回12,则不是3。因此,您可以使用parseInt1+parseInt2返回3。我会使用选择器的表单输入[type=text],这样事件侦听器只针对表单内部的输入元素,而不是整个页面。此时,唯一的输入可能在表单内部,但如果您稍后在页面的其他位置添加输入元素,则针对所有输入元素可能会导致后续问题。感谢无用的代码,这将非常方便。但是我仍然坚持为什么它不起作用