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

发布于 2024-09-27 07:02:21 字数 1467 浏览 2 评论 0原文

在这里遇到一些麻烦。

设置:

select 对象可以选择“其他”

用户选择“其他”。

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

<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" />

我应该从 select 对象中删除 onchange 事件吗?如果是这样,我不知道如何执行脚本。

任何解决方案将不胜感激。

Having some trouble here with this.

The setup:

A select object with a choice of "Other"

User selects "Other".

Script runs when this specific value is chosen, and dynamically changes the class of input object from "hide" to "show" (hidden and visible with css display).

<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" />

Should I remove the onchange event from the select object? If so, I am at a loss as how to have the script executed.

Any solutions would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

GRAY°灰色天空 2024-10-04 07:02:21

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

<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/

The script should always be included in your page, since you want this to run while you make the changes in the dropdown list..

<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" />

Live example at : http://www.jsfiddle.net/MVymF/

装迷糊 2024-10-04 07:02:21

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

why are you putting this in the post event? you can just render this as standard javascript as part of the page.

树深时见影 2024-10-04 07:02:21

发布时,页面将刷新,重新加载时,您不会保存选择框的选定值。

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

>其他

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

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

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

检查 select 的演示

On post , the page will be refreshing , ad on reloading you are not saving the selected value of the select box.

The select box is not keep selected after posting. You have to do that.

>Other

As the value of option change the display hide also gone.
Fix that

If no need to submit the page . use this

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

check demo of select

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文