【问题标题】:jQuery UI chained select-menu. Form resets when button is clickedjQuery UI 链式选择菜单。单击按钮时表单重置
【发布时间】:2012-07-18 10:22:18
【问题描述】:

我正在使用链接选择菜单来引导访问者解决一些问题。这就像一个魅力,然而,最终用户必须单击一个按钮才能将所有值发送到 PHP 脚本。这也没有问题,但是,当页面重新加载时(因为按钮将表单发送到同一页面),所有字段都被再次隐藏,这不是我想要的。

我希望在页面重新加载时“选择”其中的项目时显示链接的选择菜单。使用 PHP,我只需测试是否选择了一个字段并将该状态添加到选择菜单中。但它们会一直隐藏,直到您再次手动选择所有内容。

我认为这只是 JS 部分的一个小调整。但是我对 JS 的了解有限,让我没有办法解决。

来源

【问题讨论】:

    标签: php javascript jquery jquery-ui select-menu


    【解决方案1】:

    由于表单提交给自身,用户选择的值将在$_GET 或$_POST 中可用(取决于表单的action 是get 还是post)。

    最好的方法是使用这些值在适当的<option> 节点上设置selected 属性,使用类似这样的方法。

    $selectedC1Value = '';
    <? if isset($_POST['c1']) { ?>
        $selectedC1Value = $_POST['c1'];
    <? } ?>
    
    <select name="c1" id="c1" >
        <option value="" <? if ($selectedC1Value == '') { echo 'selected'; } ?>>
            --
        </option>
        <option value="age" <? if ($selectedC1Value == '') { echo 'selected'; } ?>>
            Age
        </option>
        <option value="education" <? if ($selectedC1Value == '') { echo 'selected'; } ?>>
            Education
        </option>
        <!-- etc -->
    </select>
    

    必须为您的&lt;form&gt; 中的每个&lt;select&gt; 重复此操作。

    【讨论】:

    • 是的,我正在使用 PHP 将“选定”添加到选项节点。但是,当页面刷新时(由于表单提交),“已选择”选项存在,但未显示。
    • 在这种情况下,您所要做的就是重构您的 JS 以在页面加载时调用您在更改时调用的相同方法。我更改了您的小提琴以使用第一个 selectmenu 小部件 - jsfiddle.net/tj_vantoll/kLDcL 来展示这一点。您必须在页面加载时进行此类显式调用,selectmenu 不会自动运行您的 change 函数。
    • 我已经在多个论坛上发布了这个问题,并尝试了几天(作为 JS 的新手)。你帮了我很多!谢谢,我接受了答案并投了赞成票。我可以再问一个问题吗?还有一个领域需要展示,我正在尝试写这篇文章,但我现在的想法很模糊。你能看吗,请查看:jsfiddle.net/kLDcL/1 再次非常感谢!
    • 我想我已经解决了:jsfiddle.net/kLDcL/2 非常感谢,你让我省了一些麻烦。
    • 还有一个小问题.. 我只想在选择 name="map[]" 和 select name="mapb[]" 时显示按钮。这可能吗?
    猜你喜欢
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    相关资源
    最近更新 更多