1

onclick イベントとしてインクリメントとデクリメントのみを行うスピン コントロールを作成しました。私の問題は、値 1 未満で表示できないように制限したいということです。ゼロまで、そこから-1、-2、-3などと続きます

このスクリプト/関数に追加して、最小数量を 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> 
4

3 に答える 3

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

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

試す:

 <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 に答える