我正在使用javascript來驗證輸入文本字段值的選擇列在我的窗體中。 使用getElementsByTagName選擇標記
3列採樣點,採樣類型和低TPC。我想對選擇列(採樣類型)制定規則設備選項和人員選項。 設備選項規則工作正常,但如果我選擇人員選項第4行,那麼其他行值(低TPC列)總是執行人員選項規則。
這裏我的代碼:
<div class="form-group">
<label for="location" class="col-md-2 control-label" style="text-align:left;">location</label>
<div class="col-sm-3">
<select name="location" id="location" class="form-control" onselect="setColor()">
<option value=""></option>
<option value="CMP">CMP</option>
<option value="DRP">DRP</option>
</select>
</div>
</div>
[...]
<div class="row">
<div class="col-md-12">
<div class="table-responsive">
[...]
<td>
<input type="text" name="sample_point[]" id="sample_point" size="17" value=""/></td>
<td>
<select name ="sampling_type[]" id="sampling_type">
<option value=""></option>
<option value="Equipment">Equipment</option>
<option value="Personnel">Personnel</option>
<option value="Environment">Environment</option>
</select>
</td>
<td>
<input type="text" name="low_tpc[]" id="low_tpc" onkeyup="setColor()" size="5" value=""/></td>
[...]
<script type="text/javascript">
function setColor() {
var dropdown = document.getElementById('location').value;
switch (dropdown) {
case 'DRP':
var obj = document.getElementsByTagName('input');
for(var i=0; i<obj.length; i++) {
if (obj[i].name == "sample_point[]") {
var sp = obj[i].value;
}
if (obj[i].name == "low_tpc[]") {
var low = obj[i].value;
var sels = document.getElementsByTagName("select");
for(var j=0; j<sels.length;j++) {
var sel = sels[j];
var type = sel.options[sel.selectedIndex].value;
switch (type) {
case 'Equipment':
if(sp.match(/black/i)) {
if(low > 5000) {
obj[i].style.backgroundColor = "#fd6969";
} else {
obj[i].style.backgroundColor = "";
}
} else if(sp.match(/red/i) || sp.match(/blue/i)) {
obj[i].style.backgroundColor = "";
} else {
if(low > 3200) {
obj[i].style.backgroundColor = "#fd6969";
} else {
obj[i].style.backgroundColor = "";
}
}
break;
case 'Personnel':
if(sp.match(/black/i)) {
if(low > 50) {
obj[i].style.backgroundColor = "#fd6969";
} else {
obj[i].style.backgroundColor = "";
}
} else {
obj[i].style.backgroundColor = "";
}
break;
default:
break;
}
}
}
}
break;
default:
break;
}
}
setColor();
</script>
如何進行的選擇上,而不影響其他選擇規則每個規則執行?
https://jsfiddle.net/arunpjohny/ywnkb788/1/? - 用你的演示標記更新小提琴複製問題 –
感謝您的代碼,我已經嘗試過,並沒有工作 – metaphor