繁体   English   中英

如何触发文本框中的输入事件,而无需在javascript中按Enter

[英]how to trigger enter event in text box without pressing enter in javascript

我正在计算两个文本框的乘积。 但是,用户需要在txtTotal显示总价值之前按“输入”。 请我真的需要帮助。 我不太了解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>
var e = $.Event( "keypress", { which: 13 } );
$('#yourInput').trigger(e);

希望这可以帮助

附加 :读取事件触发器

如果您使用的是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);
     }
 });

解决方案1演示

解决方案2

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

解决方案2演示

注意:在HTML5中,有一个新事件“输入”,其行为与您似乎认为“更改”应具有的行为完全相同-因为一旦按下键以将信息输入表单,该事件就会触发。 较旧的浏览器,您可以使用“ Keyup”事件。

如果您需要在用户不按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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM