Javascript 如何为单个html元素提供多个类
我已经创建了一个IMS系统。在订单页面中,我必须在生成订单之前验证产品数量。为此,我使用jquery选择器比较了两个值,除非第二个字段的值小于或等于第一个字段的值,否则submit按钮将被启用,并且每当值超过它时,按钮将被禁用。(第一个字段是可用库存,第二个字段是创建订单时给定的库存)。但当我输入第二个产品验证不起作用时,此代码仅适用于第一个产品。我怎样才能把这个代码放在循环中,并且我可以检查订单中的每个产品。添加新产品时,行的id将自动递增。下面是我的代码Javascript 如何为单个html元素提供多个类,javascript,jquery,html,Javascript,Jquery,Html,我已经创建了一个IMS系统。在订单页面中,我必须在生成订单之前验证产品数量。为此,我使用jquery选择器比较了两个值,除非第二个字段的值小于或等于第一个字段的值,否则submit按钮将被启用,并且每当值超过它时,按钮将被禁用。(第一个字段是可用库存,第二个字段是创建订单时给定的库存)。但当我输入第二个产品验证不起作用时,此代码仅适用于第一个产品。我怎样才能把这个代码放在循环中,并且我可以检查订单中的每个产品。添加新产品时,行的id将自动递增。下面是我的代码 <td> <
<td>
<input type="text" name="qty[]" id="qty_1" class="form-control" disabled autocomplete="off">
<input type="hidden" name="qty_value[]" id="qty_value_1" class="form-control" autocomplete="off">
</td>
<td><input type="text" name="aqty[]" id="aqty_1" class="form-control" required onkeyup="getTotal(1)"></td>
Javascript
<script type="text/javascript">
$('#qty_value_1,#aqty_1').on('keyup', function() {
var btn = $('button:contains("Submit")');
if (parseFloat($('#qty_value_1').val()) >= parseFloat($('#aqty_1').val())) {
btn.prop('disabled', false);
} else {
btn.prop('disabled', true);
}
})
</script>
$(“#数量#值#1,#质量#1”)。在('keyup',function()上{
var btn=$('button:contains(“Submit”));
if(parseFloat($('#qty_值_1').val())>=parseFloat($('#qty_1').val()){
btn.道具(“禁用”,错误);
}否则{
btn.道具(“禁用”,正确);
}
})
我的主要目的是在生成订单之前检查每个产品的数量
您可以在html中使用多个类一个div或
您需要使用CSS属性选择器。它使用方括号。对于您的案例,您需要选择以aqty开头的id
-s,因此您必须将选择器定义为[id^=“aqty”]
您的脚本可能如下所示
var btn=$('button:contains(“Submit”));
$('[id^=“aqty_”]')。在('keyup',function()上{
变量qty_val=$(this).closest('tr').find('[id^=“qty_value_']);
if(parseFloat(qty_val.val())>=parseFloat($(this.val())){
$(this.removeClass(“warn”);
}否则{
$(此).addClass(“警告”);
}
btn.prop('disabled',$('warn').length);
});
由于您有多个商品要填写订单,所以您必须关注只有在所有订单数量不超过存储值时才启用按钮。因此,好的方法是定义类,即.warn
,它将错误的字段值签名。
脚本的最后一步必须是使用class.warn
检查元素数组的长度。如果此长度大于零,则某些值超过其限制,否则所有输入都正常,提交按钮变为启用
看看链接的工作原理:我试过了,但不起作用。我试过了,但不起作用。如果你有这个例子,我怎么能使用多个类?请给出你的意思是这样说的?你的代码中似乎有一些混乱的逻辑。第一个注意事项-您尝试使用
id=“qty\u value\u 1”
处理隐藏输入的事件keyup
。为什么?第二个-对于id=“aqty\u 1”
调用inlinegetTotal(1)
,然后在上调用handler('keyup'…
在脚本中。请解释并给出答案,这只是验证账单中的第一个产品数量,如果第二个产品数量大于股票比我还能够生成我不想要的订单。所以请澄清IF语句的条件。只需描述一个逻辑,然后将其放入代码中为什么类在我的代码中不工作(class=“qtys form control”),如果条件已经存在,我会放入IF(parseFloat($('.qtys').val()>=parseFloat($('.aqtys').val()){btn.prop('disabled',false);}else{btn.prop('disabled',true);}
<div class="container classname classname classname">
</div>