Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在填充所有文本框时计算文本框值?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何仅在填充所有文本框时计算文本框值?

Javascript 如何仅在填充所有文本框时计算文本框值?,javascript,jquery,html,Javascript,Jquery,Html,我根据4个文本框的值进行了一些计算,但是我只想在4个文本框有值的情况下进行计算 听起来很简单,但我想不出只有当上述条件为真并在每个keyup上重新计算时才运行calc的方法 $(window).load(function(){ $('#quantity, #length, #width, #height, #weight').keyup(function () { $('#volumetric_weight').val($('#length').val()*$('#w

我根据4个文本框的值进行了一些计算,但是我只想在4个文本框有值的情况下进行计算

听起来很简单,但我想不出只有当上述条件为真并在每个keyup上重新计算时才运行calc的方法

$(window).load(function(){
     $('#quantity, #length, #width, #height, #weight').keyup(function () {
         $('#volumetric_weight').val($('#length').val()*$('#width').val()*$('#height').val()*$('#quantity').val()/5000);

尝试使用
required
属性,仅当每个
输入有效时才计算

$(函数(){
变量输入=$(“形式输入”),产品=1;
inputs.on(“输入”,函数(){
if(document.forms[“calculate”].checkValidity()){
输入。每个(功能(i、el){
产品*=el.值;
});
$(“体积重量”).val(产品/5000);
产品=1;
}
})
})

首先需要检查输入字段是否有值(所有值),然后执行代码。 在你的问题中,你提到了4个文本框,但在你的代码中,你提到了5;) 像这样的

    $(window).load(function(){

         $('#quantity, #length, #width, #height, #weight').keyup(function () {
if(!$('#quantity').val() || !$('#length').val() || !$('#width').val() || !$('#height').val() || !$('#weight').val()) return;

             $('#volumetric_weight').val($('#length').val()*$('#width').val()*$('#height').val()*$('#quantity').val()/5000);

您只需在计算之前测试所有值是否存在:

$(window).load(function(){
  $('#quantity, #length, #width, #height, #weight').change(function () {
    var len = $('#length').val();
        width = $('#width').val();
        height = $('#height').val();
        qty = $('#quantity').val();
    if (!!len && !!width && !!height && !!qty) {
      $('#volumetric_weight').val(len * width * height * qty / 5000);
    }
  });
})

注意,我使用了@Mathew:substitute
change()
keyup()
的建议,以便也能捕捉用户过去的时间。

可以包括
html
问题吗?仅供记录。。。我建议您将“keyup”替换为“change”,因为如果用户粘贴值,则不会通过提交表单触发keyup事件?我不想提交它。不,
this.checkValidity()
应该返回
false
,如果
输入
没有
。长度
大于
0
<代码>表格
不是必需的。可以在问题中包含
html
?是的,我可以包含htmlWas,因为它们的想法是一样的。你可能想做一些
!isNaN也适用于这些VAL。当然,所有的值都是字符串,所以您也需要解析float或任何类型的数字。