JavaScript单选按钮已选中= true不起作用

时间:2019-01-30 00:28:32

标签: javascript html xml

我有一个网页,该网页从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上调用。我不知道为什么它在开关盒外部而不是在开关盒内部工作。有人可以帮我吗?

谢谢

0 个答案:

没有答案
相关问题