未设置复选框,并在车身载荷上使用匹配值进行检查

时间:2013-05-29 02:01:28

标签: php javascript checkbox

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

我有一个复选框,表示值来自数据库。因此,如果值匹配,则会选中复选框。

现在我在应该检查时遇到问题,但未勾选复选框。

我在负载中看到了我身体的问题,但我不知道如何解决它。我怎么知道那里的问题?因为如果我刷新页面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>

请指教。
谢谢

1 个答案:

答案 0 :(得分:0)

我看不到您的复选框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]);

现在它应该工作: - )