thisからの参照を使用しましたが、複数の入力テキストフィールドの質問に正確に挑戦したいと思います。私はさらにタイプしないようにユーザーを制限し、getElementByIdの代わりにgetElementsByClassNameを使用したいと思います。数値入力フィールドの集まりの文字数の制限
HTML
<td>
<input id="quantity_scroll" cart_id="<?php echo $cart_row['id']; ?>" min="1" type ="number" max="99" value="<?php echo $cart_row['quantity'] ;?>" oninput = "checkLength()" class="form-control form-quantity" style=" width: 60px;text-align: left;" >
</td>
Javascriptを
function checkLength(){
var elements = document.getElementsByClassName("form-quantity");
var y;
var ele = elements.length/2;
for(y=0; y < ele; y++){
var length = elements[y].value.length;
if(length <= 2){
return true;
}else{
var value = elements[y].value;
value = value.substring(0, value.length-1);
document.getElementsByClassName("form-quantity")[y].value = value;
}
}
}
ユーザーは最初の入力ボックスではなく、他に制限されているが。私は別の方法を試みたが、なぜそれが起こっていないのか理解できない。
あなたが入力に 'maxlength'属性を追加することができますか? – evolutionxbox
"最初の入力ボックスでのみユーザーが制限されています" - これを理解できればわかりませんが、すべてに制限したいという意味ですか?または最初のフィールドだけ?なぜなら、私は、あなたがフォーカスのあるフィールドを特にチェックするために 'this'を渡す必要があるからです。 – Qiqo
問題はあなたのループで...' var ele = elements.length/2; 'と' for(y = 0; y