【问题标题】:Is it possible to hide a value in a form drop down list (PHP, JavaScript)?是否可以在表单下拉列表(PHP、JavaScript)中隐藏值?
【发布时间】:2010-06-24 03:55:22
【问题描述】:

我有一个表单下拉框(用于 50 个州),它通过 PHP for 循环填充(参见下面的代码)。用户选择一个居住状态,然后在表单的后面还必须选择一个邮寄状态(以防两者不同)。我在 JavaScript 中提供了一个复选框,选中该复选框后,将使用已在住宅信息部分输入的信息填充所有邮寄信息。当该框被选中时,除邮件状态外的所有邮件信息字段都被禁用并读取same as residential information。邮件状态不是same as residential information,因为我没有使用该选项填充它。有什么方法可以用该选项填充我的下拉框,以便用户看不到它,但当我想在代码中使用它时它仍然可用?

            <label>Residental State</label><br/>
            <select id="res_state" name="res_state">
                <?php  
                    $states = array('Select State' , 'AA' , 'AE' , 'AK' , 'AL' , 'AP' , 'AR' , 'AS' , 'AZ' , 'CA' , 'CO' , 'CT', 'DE' , 'DC' , 'FL' , 'FM' , 'GA' , 'GU' , 'HI' , 'IA' , 'ID' , 'IL' , 'IN' , 'KS' , 'KY' , 'LA' , 'MA' , 'MD' , 'ME' , 'MH' , 'MI' , 'MN' , 'MO' , 'MP' , 'MS' , 'MT' , 'NC' , 'ND' , 'NE' , 'NH' , 'NJ' , 'NM' , 'NV' , 'NY' , 'OH' , 'OK' , 'OR' , 'PA' , 'PR' , 'PW' , 'RI' , 'SC' , 'SD' , 'TN' , 'TX' , 'UT' , 'VA' , 'VI' , 'VT' , 'WA' , 'WI' , 'WV' , 'WY');
                    for($i = 0; $i < count($states); $i++){
                        echo "<option>$states[$i]</option>";
                    }
                ?>
            </select>

【问题讨论】:

  • 无关:考虑将您的 for 更改为 foreach:foreach($states as $state) { echo "&lt;option&gt;$state&lt;/option&gt;"; }
  • 谢谢,我采纳了你的建议,看起来干净多了。

标签: php javascript forms drop-down-menu


【解决方案1】:

禁用所有表单控件并使用第一个表单中的实际值填充它们。

这是用户期望的典型行为。如果您在任何地方写same as residential information,从用户体验的角度来看,您的网站会显得不专业。

【讨论】:

  • 我最初已按照您的建议进行操作,但如果用户选中 same as 框然后返回并更改 residential informationmailing information 不会更新。我试图避免编写另一个不断检查residential information 字段值的函数。
  • 用户知道这一点,在他们完成之前不会选中该框。如果你仍然担心它。只需将onchange="your_copy_method()" 添加到表单中的每个元素即可。这样,每当表单上的某些内容发生变化时,另一个就会更新。
  • 哈哈,不知道为什么我没想到!我在想我将不得不做一些讨厌的功能来检查residential fields 每隔几秒钟或什么的。我按照你的建议做了,效果很好!非常感谢!
【解决方案2】:

您可以使用 JavaScript 添加它,而不是隐藏选项然后显示它:

theSel = document.getElementById('res_state');
theSel.options[theSel.length] = new Option('same as residential information', 'value');

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多