我正在使用JavaScript驗證的HTML5表單。我想禁用選擇元素,直到多個輸入框包含有效數據。這裏是我的簡單的HTML:禁用元素,直到其他輸入字段有效
<input type="number" pattern="[0-9]{2}" min="1" max="100" id="num1" required onchange="valid(this)" />
<br />
<input type="number" pattern="[0-9]{2}" min="1" max="100" id="num2" required onchange="valid(this)" />
<br />
<input type="number" pattern="[0-9]{2}" min="1" max="100" id="num3" required onchange="valid(this)" />
<br />
<select id="drop" disabled>
<option>disabled until input boxes are valid</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
這裏是簡化的javascript:
function valid(obj) {
if ((obj.validity) && (!obj.validity.valid)) {
return false;
} else {
return true;
}
}
var numA = document.getElementById("num1"),
numB = document.getElementById("num2"),
numC = document.getElementById("num3");
if (valid(numA) && valid(numB) && valid(numC)) {
document.getElementById("drop").disabled = false;
}
,這裏是我的jsfiddle
可以這樣用簡單的「醇的JavaScript實現的呢?由於我仍然在學習Javascript,我還不熟悉JQuery。
任何時候輸入字段的內容發生變化我想驗證輸入。然後它需要檢查所有其他輸入字段(num1,num2,num3)是否有效。如果並且只有在全部有效時,它纔在select元素上設置disabled = false。
有沒有更好的方法來做到這一點?
你需要做到這一點每個有變化的其他投入時間檢查。如果在啓用#drop元素後,其他輸入之一通過用戶交互變爲無效,會發生什麼情況? – kinakuta