如何在没有按下javascript输入的情况下触发在文本框中输入事件

时间:2015-03-22 16:30:34

标签: javascript

我正致力于计算两个文本框的产品。但是,用户需要在txtTotal显示总值之前按“enter”。请我真的需要帮助。我对jquery并不熟悉,我还在研究jscript。非常感谢你!

这是我更新的代码:

<html>
<head>
<script src="jquery-1.11.2.min.js"></script>
<script>

$('#txtQuantity').bind('input',function(){ 
 var quantity = parseFloat($(this).val()) || 0;
 var amount = parseFloat($('#txtAmount').val());
 var evt = (amount * quantity);
 $('#txttotal').val(evt);
});

</script>
</head>

<body>

<input type="text" class="quan1" name="txtQuantity" id="txtQuantity"/> 
<input type="text"  id="txtAmount" class="quan1" name="txtAmount"   value="4" disabled="" /> 
<input type="text" class="quan1" id="txttotal" name="txttotal"  disabled="" /> <br>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

var e = $.Event( "keypress", { which: 13 } );
$('#yourInput').trigger(e);

希望这会有所帮助

额外:阅读EventsTriggers

如果您使用的是jquery,可以这样做。

解决方案1 ​​

$('#txtQuantity').on('keypress', function (event) {
       if(event.which === 13){

     var quantity = parseFloat($(this).val()) || 0;
     var amount = parseFloat($('#txtAmount').val());
     var evt = (amount * quantity);
     $('#txttotal').val(evt);
     }
 });

Solution 1 Demo

解决方案2

$('#txtQuantity').bind('input',function(){ 
     var quantity = parseFloat($(this).val()) || 0;
     var amount = parseFloat($('#txtAmount').val());
     var evt = (amount * quantity);
     $('#txttotal').val(evt);
});

Solution 2 Demo

注意: 在HTML5中有一个新的事件,&#34;输入&#34;,其行为与您似乎认为的完全相同,并且#34;更改&#34;应该表现得很好 - 因为只要按下一个键就可以将信息输入到表格中。旧的浏览器,您可以使用&#34; Keyup&#34;事件

答案 1 :(得分:0)

如果您需要在没有用户按Enter的情况下立即计算该值,请将keyup事件绑定到文本框

var compute = function(){
     var quantity = parseFloat($("#txtQuantity" ).val()) || 0;
     var amount = parseFloat($('#txtAmount').val());
     var total = (amount * quantity);
     $('#txttotal').val(total);
}

 $( "#txtQuantity" ).keyup(compute);