Javascript 将选择输入字段限制为0、3、5和8

Javascript 将选择输入字段限制为0、3、5和8,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我可以通过整数(0除外)增加/减少数量,将该数量乘以给定的价格,通过复选框向总量中添加一个值,并将其全部作为总量输出。到目前为止,一切顺利 我目前的挑战是将增量/减量限制在0,3,5,8 我想我将不得不更改以下部分(或再次完全忽略它)以说明0,但其余部分将碰壁: else{ 如果(当前nb>1){ newNb=parseFloat(currentNb)-1; }否则{ newNb=1; addClass('inactive'); } 这是我目前掌握的代码: var\u extral=1; $

我可以通过整数(0除外)增加/减少数量,将该数量乘以给定的价格,通过复选框向总量中添加一个值,并将其全部作为总量输出。到目前为止,一切顺利

我目前的挑战是将增量/减量限制在0,3,5,8

我想我将不得不更改以下部分(或再次完全忽略它)以说明0,但其余部分将碰壁:

else{
如果(当前nb>1){
newNb=parseFloat(currentNb)-1;
}否则{
newNb=1;
addClass('inactive');
}
这是我目前掌握的代码:

var\u extral=1;
$(“.incr-btn_mobile”)。在(“单击”,功能(e){
//防止默认操作
e、 预防默认值();
//为方法设置变量
var按钮=$(此按钮);
var labelNb=button.parent().find('.quantity');
var labelPrice=$(“#”+button.attr('data-target');
var currentNb=button.parent().find('.quantity').val();
var-newNb=0;
//删除“非活动”类
$('.incr-btn_mobile[data action=“decrease”]).removeClass('inactive');
//增减
if(button.attr('data-action')=“增加”){
newNb=parseFloat(currentNb)+1;
}否则{
如果(当前nb>1){
newNb=parseFloat(currentNb)-1;
}否则{
newNb=1;
addClass('inactive');
}
}
var isExtra=$(“#包括”).prop('checked')?_extral:0;
$(labelNb).val(newNb);
$(labelPrice).css('display','block').html(=$”+字符串(((newNb)*7.99)+(isExtra)).toFixed(2));
});
$(“#包括”)。在('click',function()上{
//为方法设置变量
var复选框=$(此);
var labelPrice=$(“#”+$(“.incr-btn_mobile”).attr('data-target');
var labelPriceFloat=parseFloat(labelPrice.html().substring(4));
//如果复选框为check,则增加价格
if(checkbox.prop('checked')){
html(“=$”+字符串((labelPriceFloat+_extral).toFixed(2));
}否则{
html(“=$”+字符串((labelPriceFloat-_extral).toFixed(2));
}
});
.bg{
宽度:100%;
}
.栏目{
浮动:左;
宽度:50%;
填充:10px;
}
/*清除列后的浮动*/
.罗:之后{
内容:“;
显示:表格;
明确:两者皆有;
}
.count-input_mobile{
位置:相对位置;
最大宽度:1000%;
最大宽度:400px;
边缘顶部:10px;
文本对齐:居中;
}
.计数输入\移动输入{
宽度:100%;
高度:42px;
边框:1px实心#000边框半径:2px;
背景:无;
文本对齐:居中;
}
.count-input_移动输入:焦点{
大纲:无;
}
.count-input\u mobile.incr-btn\u mobile{
显示:块;
位置:绝对位置;
宽度:30px;
高度:30px;
字号:26px;
字体大小:300;
文本对齐:居中;
线高:30px;
最高:50%;
右:0;
利润上限:-15px;
文字装饰:无;
}
.count-input_mobile.incr-btn_mobile:第一个孩子{
右:自动;
左:0;
最高:46%;
}
.count-input_mobile.count-input-sm{
最大宽度:125px;
}
.count-input_mobile.count-input-sm input{
高度:36px;
}
.count-input_mobile.count-input-lg{
最大宽度:200px;
}
.count-input_mobile.count-input-lg input{
高度:70像素;
边界半径:3px;
}
.button_手机{
边框:1px实心#000;
边界半径:2px;
背景:无;
填充物:10.5px;
宽度:100%;
文本对齐:居中;
文字装饰:无;
显示:内联块;
字体大小:16px;
光标:指针;
边缘顶部:10px;
}

= $ 0.00

在尚未使用按钮替换链接的情况下,此代码适用于上述代码:

var\u extral=3;
$(“.incr-btn_mobile”)。在(“单击”,功能(e){
//防止默认操作
e、 预防默认值();
//为方法设置变量
var按钮=$(此按钮);
var labelNb=button.parent().find('.quantity');
var labelPrice=$(“#”+button.attr('data-target');
var currentNb=button.parent().find('.quantity').val();
var-newNb=0;
//删除“非活动”类
$('.incr-btn_mobile[data action=“decrease”]).removeClass('inactive');
//增减
if(button.attr('data-action')=“增加”){
如果((当前NB)>=8){
//尼希特斯马肯
}否则{
如果((当前nb==0)| |(当前nb==5)){
newNb=parseFloat(currentNb)+3;
}否则如果((当前NB==3)){
newNb=parseFloat(currentNb)+2;
}
}
}
if(button.attr('data-action')=“减少”){

如果((currentNb)我不完全清楚您所说的“我当前的挑战是将增量/减量限制在0,3,5,8”是什么意思。这是否意味着您希望输入是0、3、5或8的倍数?谁在乎您能做什么?您的问题是什么?现在您可以点击例如“+”-符号,它会随着您的点击次数增加1,例如,30次将导致30。您只能减少到1个单位。我希望它将输入从0增加到3到5到8,并停止增加。减少计数时应采用相同的逻辑。请注意
toFixed()
返回一个字符串,因此无需将其转换为字符串。首先,您应该为+和-操作使用
按钮
input type=“button”
。您可以将它们设置为完全相同的样式。然后更容易禁用它们(了解如何使用)。