未设置复选框,已与主体负载上的匹配值进行了检查

Checkbox not set checked with match value on body load

本文关键字:检查 复选框 设置 负载 主体      更新时间:2023-09-26

这里我想问你关于我的复选框。

我有一个复选框,值从数据库获取。因此,如果value匹配,则复选框将被选中。

现在我面临的问题是,当它应该被选中,但复选框没有被选中。

我看到我的身体负载的问题,但我不知道如何解决它。我怎么知道问题在哪里?因为如果我刷新页面2到3次,这个复选框就会被选中,而那个复选框又被取消选中。

下面是我的JS代码:
function ActionCcdCheck (theForm)
    {
        if (theForm.ccd_chk.checked)
        {
            theForm['ccd_pos[]'][0].className = 'part';
            theForm['ccd_pos[]'][1].className = 'part';
            theForm['ccd_pos[]'][2].className = 'part';
            theForm['ccd_pos[]'][0].disabled  = false;
            theForm['ccd_pos[]'][0].checked  = false;
            theForm['ccd_pos[]'][1].disabled  = false;
            theForm['ccd_pos[]'][1].checked  = false;
            theForm['ccd_pos[]'][2].disabled  = false;
            theForm['ccd_pos[]'][2].checked  = false;
        }
        else
        {
            theForm['ccd_pos[]'][0].disabled  = true;
            theForm['ccd_pos[]'][1].disabled  = true;
            theForm['ccd_pos[]'][2].disabled  = true;
        }
    }
function LoadCondition ()
{
    ActionCcdCheck  (document.form);
}
这里是我的复选框代码:
<body onload="LoadCondition();">
<form>
<?php
if(strpos($q_ccd_pos, 'front') === false)
{
echo "<input type='checkbox' name='ccd_pos[]' value='front' class='part' onkeypress='FocusChange (this.form, 6, 3);'/> Front";
}
else
{
echo "<input type='checkbox' name='ccd_pos[]' value='front' class='part' onkeypress='FocusChange (this.form, 6, 3);' checked/> Front";
}
if(strpos($q_ccd_pos, 'back') === false)
{
echo "<input type='checkbox' name='ccd_pos[]' value='back' class='part' onkeypress='FocusChange (this.form, 7, 2);'/> Back";
}
else
{
echo "<input type='checkbox' name='ccd_pos[]' value='back' class='part' onkeypress='FocusChange (this.form, 7, 2);' checked/> Back";
}
if(strpos($q_ccd_pos, 'fb') === false)
{
echo "<input type='checkbox' name='ccd_pos[]' value='fb' class='part' onkeypress='FocusChange (this.form, 8, 1);'/> FB";
}
else
{
echo "<input type='checkbox' name='ccd_pos[]' value='fb' class='part' onkeypress='FocusChange (this.form, 8, 1);' checked/> FB";
}
?>
</form>
</body>

请建议。谢谢你

我看不到要测试的复选框ccd_chk:

 if (theForm.ccd_chk.checked)

所以我创建了一个:

<form>
<?php
echo "<input type='checkbox' name='ccd_chk' value='chk' class='part' checked /> chk'n";
if(strpos($q_ccd_pos, 'front') === false)
[...]

这显然是错误的

if (theForm.ccd_chk.checked)

替换为

if (theForm['ccd_chk'].checked )   {

也替换为LoadCondition ()

function LoadCondition ()
{
    ActionCcdCheck  (document.form);
}

    ActionCcdCheck(document.forms[0]);

现在它应该工作了:-)