我確定這在某處得到了回答,但我找不到。我有一個單選按鈕和一個數字欄位,如下所示。我想讓它在第一個單選按鈕被選中時,數字框的最大值為 1,當另一個單選按鈕被選中時,最大值限制被洗掉。
所以當第一個收音機被檢查時是這樣的
<form action="test.html" method="POST">
<input id="mySelect" type="radio" name="isunique" value="0"> Unique
<input id="mySelect" type="radio" name="isunique" value="1"> Not Unique
<input type="number" min="0" max="1" step="1" name="qty">
</form>
當第二個收音機被檢查時就像這樣
<form action="test.html" method="POST">
<input id="mySelect" type="radio" name="isunique" value="0"> Unique
<input id="mySelect" type="radio" name="isunique" value="1"> Not Unique
<input type="number" min="0" step="1" name="qty">
</form>
我嘗試通過使用函式呼叫來做到這一點
onchange="unlimitqty()"
函式在哪里
function unlimitqty() {
var x = document.getElementById("mySelect").value;
document.getElementById("qlimit").innerHTML = "<input type=\"number\" min="0\" step=\"1\" name=\"qty\">\n";
}
另一個函式 limitqty()
function limitqty() {
var x = document.getElementById("mySelect").value;
document.getElementById("qlimit").innerHTML = "<input type=\"number\" min=\"0\" max=\"1\" step=\"1\" name=\"qty\">\n";
}
然后我把它放在表格中
<p id="qlimit">
這會在頁面上產生正確的行為,但在提交表單時不會傳遞該變數。
我并不是真的想解決這種方法,我覺得必須有更好的方法。必須有一些 javascript 內置函式來限制數字欄位。我只是一直沒能找到它。
任何幫助將不勝感激!
uj5u.com熱心網友回復:
您可以通過設定它的屬性來限制數字輸入的最大值。setAttribute 函式的第一個引數采用您想要更改的值,例如:'max'、'min' 等。第二個引數采用您想要設定為第一個引數的值。在您的情況下,您可以通過執行以下操作將最大值更改為 1:
document.getElementById('numberboxID').setAttribute('max', 1);
要使值無限大,您可以將引數 2 更改為 Infinity:
document.getElementById('numberboxID').setAttribute('max', Infinity);
uj5u.com熱心網友回復:
這是一種方法:
const inp=document.querySelector("input[type=number");
document.getElementById("max1").onchange=ev=>{
inp.max=ev.target.checked?"1":undefined;
}
<form action="test.html" method="POST">
<label><input type="checkbox" id="max1"> max 1</label>
<input type="number" min="0" step="1" name="qty" style="width:50px">
</form>
我冒昧地用一個復選框替換了你的兩個單選按鈕。這避免了初始未定義階段(沒有選擇單選按鈕)并且在任何情況下都更容易操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395732.html
標籤:javascript 形式
