使用php和javascript格式选择对象动态更改类名?

时间:2010-10-12 15:14:18

标签: php javascript forms dynamic

在这里遇到一些麻烦。

设置:

select对象,可选择“其他”

用户选择“其他”。

当选择此特定值时,脚本会运行,并动态地将class input对象从“隐藏”更改为“显示”(隐藏且可见css display)。< / p>

<p>Select a Grade:</p>
    <select name="grade" id="grade" onchange="changeCssClass('otherGrade')">
    <option value="No Specified Grade">Please Select</option>
    <option value="201">201</option>
        ...
    <option value="Secondary">Secondary</option>
    <option value="otherGrade">Other</option>
    </select>

<p>If "Other":</p>
<?php
    $otherGrade = $_POST['grade'];

    if($otherGrade = "otherGrade")
    {
    echo("<script language='javascript' type='text/javascript'>

        function changeCssClass(objInputID)
        {               

                    if(document.getElementById(objInputID).className=='hide')
            {
                        document.getElementById(objInputID).className = 'show';
            }
            else
            {
                document.getElementById(objInputID).className = 'hide';
            }
        }

        </script>");
    }
    else
    {
        echo ("");
    }
?>

<input type="text" name="otherGrade" id="otherGrade" class="hide" />

我应该从onchange对象中删除select事件吗?如果是这样,我对如何执行脚本感到茫然。

非常感谢任何解决方案。

3 个答案:

答案 0 :(得分:1)

脚本应始终包含在您的页面中,因为您希望在下拉列表中进行更改时运行该脚本。

<script language='javascript' type='text/javascript'>
    function changeCssClass(objInputID, currentVal, correctVal)
    {         
       if(correctVal == currentVal)
        {
                    document.getElementById(objInputID).className = 'show';
        }
        else
        {
            document.getElementById(objInputID).className = 'hide';
        }
    }
</script>

<p>Select a Grade:</p>
<select name="grade" id="grade" onchange="changeCssClass('otherGrade', this.value, 'otherGrade')">
<option value="No Specified Grade">Please Select</option>
<option value="201">201</option>
    ...
<option value="Secondary">Secondary</option>
<option value="otherGrade">Other</option>
</select>

<p>If "Other":</p>

<input type="text" name="otherGrade" id="otherGrade" class="hide" />

现场示例:http://www.jsfiddle.net/MVymF/

答案 1 :(得分:0)

你为什么把它放在后期活动中?您可以将此作为标准javascript呈现为页面的一部分。

答案 2 :(得分:0)

在帖子上,页面会刷新,广告在重新加载时您没有保存选择框的选定值。

发布后,选择框未保持选中状态。你必须这样做。

&gt;其他

随着选项值的改变,显示隐藏也消失了。 修复

如果不需要提交页面。使用这个

http://api.jquery.com/val/

检查选择

的演示