如何在javascript中使用多个(a * b)两个输入文本值并动态显示它?

Posted

技术标签:

【中文标题】如何在javascript中使用多个(a * b)两个输入文本值并动态显示它?【英文标题】:How to multiple (a*b) two input text value and show it Dynamicly with text change in javascript? 【发布时间】:2016-09-04 00:26:21 【问题描述】:

我想显示客户必须支付的金额,我的输入是这样的:

<input type="text" class="form-control" placeholder="cost " id="txt" name="credit">

<input type="text" class="form-control" placeholder="quantity" id="txt" name="limit">

当输入文本发生变化时,我想在&lt;p&gt; 标记中动态显示总成本(数量*成本)如何使用 javascript

【问题讨论】:

您尝试过的示例会很有用。这个问题有很多解决方案,有些涉及库,有些不涉及 从输入字段中获取值。将其转换为数字。然后相乘 我不知道怎么写js,我只会用它,你能帮我写吗? :D @FastSnail 我没有剩下任何标志:请有人将其标志为“请做好我的工作”吗? 我投票结束这个问题,因为 Stack Overflow 不是免费的代码编写服务。 【参考方案1】:

你可以试试这个:

<input type="text" class="form-control" placeholder="cost " id="credit" name="credit" onchange="calculate()">
<input type="text" class="form-control" placeholder="quantity" id="limit" name="limit" onchange="calculate()">
<p id="result"></p>

还有javascript部分:

function calculate() 
   var cost = Number(document.getElementById("credit"));
   var limit = Number(document.getElementById("limit"));

   document.getElementById("result").innerhtml= cost*limit;


您必须确保在输入中输入了数字。

【讨论】:

【参考方案2】:

如果两个框都是空白的,以上所有内容都会产生错误。试试这段代码,它经过测试并正在运行。

<script>

function calc()

    var credit = document.getElementById("credit").value;

    var limit = document.getElementById("limit").value; 

    if(credit == '' && limit != '')
    
        document.getElementById("cost").innerHTML = parseInt(limit);
    
    else if(limit == '' && credit != '')
    
        document.getElementById("cost").innerHTML = parseInt(credit);
    
    else if(limit!= '' && credit!= '')
    
        document.getElementById("cost").innerHTML = parseInt(limit) * parseInt(credit);
    
    else
    
        document.getElementById("cost").innerHTML = '';
    

 </script>

</head> 

<input type="number" value="0" min="0"  class="form-control" placeholder="cost" id="credit" name="credit" onkeyup="calc();">

<input type="number" value="0" min="0"  class="form-control" placeholder="quantity" id="limit" name="limit" onkeyup="calc();">


<p id="cost"></p>

【讨论】:

以上都是帮助用户达到目标的代码示例,希望用户可以处理错误,否则我们正在做这项工作。 你假设这两个数字都是“int”,那么小数呢? 您还假设用户会输入数字,那么其他数据类型呢?好吧,把你的话文本框改为文本而不是数字然后.. 这很好,但我自定义了 1 个答案,效果很好,但 tnx 非常好hh【参考方案3】:

希望对你有用

// get cost field
var _cost = document.getElementById("cost");
_cost.addEventListener('keyup',function(event)
updateCost()
)

// get quantity field
var _quantity = document.getElementById("quantity");
_quantity.addEventListener('keyup',function(event)
updateCost()
)


function updateCost()
var _getCost = document.getElementById("cost").value;
var _getQuantity = document.getElementById("quantity").value;
var _total = _getCost*_getQuantity;
console.log(_total);
document.getElementById("updateValue").textContent = ""; // Erase previous value
document.getElementById("updateValue").textContent = _total // update with new value

jsfiddle

【讨论】:

【参考方案4】:

如果您考虑使用 JQuery,我已经制作了这个小提琴。 看看它是否适合你。 https://fiddle.jshell.net/9cpbdegt/

$(document).ready(function() 

  $('#credit').keyup(function() 
    recalc();
  );

  $('#limit').keyup(function() 
    recalc();
  );

  function recalc() 
    var credit = $("#credit").val();
    var limit = $("#limit").val();
    var result = credit * limit;

    $("#result").text(result);
  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="form-control" placeholder="cost " id="credit" name="credit" value="0">x
<input type="text" class="form-control" placeholder="quantity" id="limit" name="limit" value="0">

<p id="result">0</p>

【讨论】:

【参考方案5】:

试试这个:

  <script >
 function myFunction() 
document.getElementById('totalcost').innerHTML = document.getElementById('txt').value * document.getElementById('txt2').value;
</script>

另外,将您的 HTML 更改为:

              <input type="text" onkeypress="myFunction()"  onkeyup="myFunction()" onclick="myFunction()" onmousemove="myFunction()" class="form-control" placeholder="cost " id="txt" name="credit">
            <input type="text" onkeypress="myFunction()" onkeyup="myFunction()" onclick="myFunction()" onmousemove="myFunction()" class="form-control" placeholder="quantity" id="txt2" name="limit">

输入成本和数量。

请注意第二个输入的更改:id='txt' 已更改为 id='txt2'。这是因为没有 2 个元素可以具有相同的 id。

注意:未经测试。

【讨论】:

以上是关于如何在javascript中使用多个(a * b)两个输入文本值并动态显示它?的主要内容,如果未能解决你的问题,请参考以下文章

如何从javascript中的对象数组映射多个属性

如何在 Javascript 或 Jquery 中处理具有多个循环的大量数组?

JavaScript新手问题 多次调用列表和简化判断多个值互不相等

如何在 Javascript 中使用异步等待函数对象?

JavaScript中逻辑运算符的使用

如何在 JavaScript 中比较“x!= a OR b”?