2013-04-18 26 views
1

我做了一個旋轉控制,只增量&遞減作爲onclick事件 我的問題是,我想限制它永遠不會顯示在1的值以下。目前,當它顯示1,我擊中遞減箭頭它下降到零,從那裏將繼續-1,-2,-3等等旋轉按鈕來增加數量在javascript

是我可以添加到此腳本/函數,使最小數量顯示爲1

我的頭標記功能是:

<!---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> 
+0

可以使用 '如果(parseInt函數(document.forms [0] .quantity.value)+ n> 1) { document.forms [0] .quantity.value = parseInt(document.forms [0] .qua ntity.value)+ n; }' – 2013-04-18 06:12:17

回答

1

使用IF條件來檢查新值是否是非零的,只有改變表單元素的值,如果是這種情況。

function changeVal(n) { 
    var el = document.forms[0].quantity; 
    var newval = parseInt(el.value) + n; 
    if (newval > 0) { 
     el.value = newval; 
    } 
} 
1

只是爲了記錄:

function changeVal(n) { 
    var el = document.forms[0].quantity; 
    el.value = Math.max(parseInt(el.value) + n, 1); 
} 
+0

哈,謝謝阿薩德。 :-) – RobG 2013-04-18 06:34:16

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>