我有一个网页,该网页从XML获取值并填充单选按钮检查。
HTML页面包含12个表单,每个表单都有唯一的表单ID
<div class="form-holder green tabset-holder" style="display:;" id="r1">
<form id="z1_form" action="LoopInfo.php" class="select-form" method="post" name="zsetup1" enctype="multipart/form-data">
<fieldset>
<div class="title-block">
<strong class="title"> [ <span id="zname1">^zname01^</span><span class="hidden"> - Lighting</span> ] </strong>
<div class="input-col-holder">
<div class="input-col">
<input type="radio" id="radio" name="radio" value="0" onclick="ZoneModeChanged('01',0)">
<label for="radio">Override</label>
</div>
<div class="input-col">
<input type="radio" id="radio1" name="radio" data-tab="#tab1" value="1" onclick="ZoneModeChanged('01',1)">
<label for="radio1">Auto</label>
</div>
</div>
</div>
<div class="tab-holder" id="tab1">
<div class="zone-wrap">
<input type="text" placeholder="^zname01^" name="zname1" maxlength="32">
<button type="submit" class="Z1UpdateZoneBtn" id="Z1SubmitBtn">Update Zone</button>
</div>
<div class="zone-holder">
<div class="zone-mode">
<div class="holder">
<strong class="title">Select zone mode</strong>
<div class="time-wrap open-close-holder">
<div class="title-holder">
<a href="#" class="title opener">Day Timer</a>
<div class="input-row">
<input type="hidden" value="0" name="EnTim1">
<input type="checkbox" id="check" name="EnTim1" value="1" ><label for="check">Enable</label>
</div>
</div>
<div class="input-holder drop-holder">
<div class="input-row">
<label for="time">On</label>
<select name="OnTim1" id="time" data-value="^tON1^">
<option value="0">0:00 a.m</option>
<option value="1">1:00 a.m</option>
<option value="2">2:00 a.m</option>
<option value="3">3:00 a.m</option>
<option value="4">4:00 a.m</option>
<option value="5">5:00 a.m</option>
<option value="6">6:00 a.m</option>
<option value="7">7:00 a.m</option>
<option value="8">8:00 a.m</option>
<option value="9">9:00 a.m</option>
<option value="10">10:00 a.m</option>
<option value="11">11:00 a.m</option>
<option value="12">12:00 p.m</option>
<option value="13">1:00 p.m</option>
<option value="14">2:00 p.m</option>
<option value="15">3:00 p.m</option>
<option value="16">4:00 p.m</option>
<option value="17" selected>5:00 p.m</option>
<option value="18">6:00 p.m</option>
<option value="19">7:00 p.m</option>
<option value="20">8:00 p.m</option>
<option value="21">9:00 p.m</option>
<option value="22">10:00 p.m</option>
<option value="23">11:00 p.m</option>
</select>
</div>
<div class="input-row">
<label for="time">Off</label>
<select name="OfTim1" id="time1" data-value="^tOFF1^">
<option value="0">0:00 a.m</option>
<option value="1">1:00 a.m</option>
<option value="2">2:00 a.m</option>
<option value="3">3:00 a.m</option>
<option value="4">4:00 a.m</option>
<option value="5">5:00 a.m</option>
<option value="6">6:00 a.m</option>
<option value="7">7:00 a.m</option>
<option value="8">8:00 a.m</option>
<option value="9">9:00 a.m</option>
<option value="10">10:00 a.m</option>
<option value="11">11:00 a.m</option>
<option value="12">12:00 p.m</option>
<option value="13">1:00 p.m</option>
<option value="14">2:00 p.m</option>
<option value="15">3:00 p.m</option>
<option value="16">4:00 p.m</option>
<option value="17">5:00 p.m</option>
<option value="18">6:00 p.m</option>
<option value="19">7:00 p.m</option>
<option value="20" selected>8:00 p.m</option>
<option value="21">9:00 p.m</option>
<option value="22">10:00 p.m</option>
<option value="23">11:00 p.m</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div id="InputZoneList">
</div>
</div>
<div class="dim-wrap open-close-holder">
<div class="holder">
<div class="title-holder">
<a href="#" class="title opener">Dimming</a>
<div class="input-row">
<input type="hidden" value="0" name="EnDim1">
<input type="checkbox" id="check3" name="EnDim1" value="1" ><label for="check3">Enable</label>
</div>
</div>
<div class="input-range drop-holder">
<span class="less-range">5%</span><input name="Dim1" type="range" min="5" step="5" value="^dim1^"><span class="more-range">100%</span>
</div>
</div>
</div>
</div>
</fieldset>
</form>
XML文件就是这样
<Head>
<Z1Mode>193</Z1Mode>
<Z2Mode>128</Z2Mode>
<Z3Mode>128</Z3Mode>
<Z4Mode>128</Z4Mode>
<Z5Mode>193</Z5Mode>
<Z6Mode>128</Z6Mode>
<Z7Mode>193</Z7Mode>
<Z8Mode>128</Z8Mode>
<Z9Mode>128</Z9Mode>
<Z10Mode>128</Z10Mode>
<Z11Mode>128</Z11Mode>
<Z12Mode>128</Z12Mode>
</Head>
因此,我正在使用Javascript XML读取ZMode值的XML,如果该值为193,我希望 checked = true 作为id-radio,id-check和id-check3
193的原因在于其二进制值 193-1100 0001 128-1000 0000
我能够得到193,将其转换为二进制,得到1的位置 但是当我转到一个开关来获取要检查的元素时,Javascript并未执行任何操作。
我的Java语言是
function changebutton()
{
var i,j;
var elements = [];
for(i = 1;i < 13; i++)
{
// console.log(zform[i]+" - "+mval[i]);
// zform = contains form name - z1_form, z2_form, ...
// mval = contains value from xml - 193, 128, ...
for(j = 0; j < 16; j++)
{
temp1 = (mval[i] >> j) & 0x01;
if(temp1)
{
// console.log(i-1+" : "+j+" - "+temp1);
switch(j)
{
case 0: //check if position 0 is 1
break;
case 1: //check if position 1 is 1
break;
case 2: //check if position 2 is 1
break;
case 3: //check if position 3 is 1
break;
case 4: //check if position 4 is 1
break;
case 5: //check if position 5 is 1
break;
case 6: //check if position 6 is 1
break;
case 7: //check if position 7 is 1
elements[i] = document.getElementById(zform[i]).elements[1]; elements[i].checked = true; break;
//just checking radio
}
}
}
}
/* This is working
var elements = document.getElementById('z1_form').elements[1];
elements.checked = true;*/
}
此函数在onLoad上调用。我不知道为什么它在开关盒外部而不是在开关盒内部工作。有人可以帮我吗?
谢谢