Javascript 如何仅在填充所有文本框时计算文本框值?
我根据4个文本框的值进行了一些计算,但是我只想在4个文本框有值的情况下进行计算 听起来很简单,但我想不出只有当上述条件为真并在每个keyup上重新计算时才运行calc的方法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
$(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:substitutechange()
到keyup()
的建议,以便也能捕捉用户过去的时间。可以包括html
问题吗?仅供记录。。。我建议您将“keyup”替换为“change”,因为如果用户粘贴值,则不会通过提交表单触发keyup事件?我不想提交它。不,this.checkValidity()
应该返回false
,如果输入值没有。长度大于0
<代码>表格
不是必需的。可以在问题中包含html
?是的,我可以包含htmlWas,因为它们的想法是一样的。你可能想做一些!isNaN也适用于这些VAL。当然,所有的值都是字符串,所以您也需要解析float或任何类型的数字。