1

我做了一个旋转控件,仅作为 onclick 事件递增和递减我的问题是我想限制它永远不允许显示低于 1 的值。目前当它显示 1 并且我点击递减箭头时它会下降归零,然后从那里继续 -1、-2、-3 等

有没有办法我可以添加到这个脚本/函数中,使最小数量显示为 1

我在 head 标签中的功能是:

  <!---sPIN BUTTONS TO UP QUANTITY---> 
  <script type="text/javascript"> 
      function changeVal(n) { 
           document.forms[0].quantity.value = 

 parseInt(document.forms[0].quantity.value) + n; 
      } 
 </script> 

我在表格中的字段是:

 <td ><input name="quantity" type="text" class="quantity" onfocus="this.blur();" value="1" /></td> 
                    <td style="width:14px;"> 
                          <table cellpadding="0" cellspacing="0"> 
                      <td width="28"><img src="siteImages/btn_up.gif" width="14" height="9" hspace="0" vspace="0" border="0" onClick="changeVal(1);"></td> 
                   </tr> 
                   <tr> 
                   <td><img src="siteImages/btn_down.gif" width="14" height="9" border="0" hspace="0" vspace="0" onClick="changeVal(-1);"></td> 
                    </tr> 
4

3 回答 3

1

使用 if 条件检查新值是否为非零,并且仅在这种情况下更改表单元素的值。

function changeVal(n) { 
    var el = document.forms[0].quantity;
    var newval = parseInt(el.value) + n;
    if (newval > 0) {
        el.value = newval;
    }
} 
于 2013-04-18T06:12:34.847 回答
1

仅作记录:

function changeVal(n) {
  var el = document.forms[0].quantity;
  el.value = Math.max(parseInt(el.value) + n, 1);
}
于 2013-04-18T06:19:15.757 回答
1

尝试:

 <script type="text/javascript"> 
function changeVal(n) { 
var newVal=parseInt(document.forms[0].quantity.value) + n 
if (newVal<1){ 
 document.forms[0].quantity.value=1; 
} 
else { 
document.forms[0].quantity.value=newVal; 
} 
} 
</script> 
于 2013-04-18T13:02:19.237 回答