如何根据选择显示表单中的隐藏值?

时间:2010-10-04 22:18:11

标签: php html wordpress forms

我正在使用自定义搜索,我有一个下拉列表:

<select name='Time_Available'>
            <option value="" selected='true'>Any</option>
            <option value='<?php echo date('Y/m/d', strtotime('+30 days')) ?>'>30 days</option>
            <option value='<?php echo date('Y/m/d', strtotime('+60 days')) ?>'>60 days</option>
            <option value='<?php echo date('Y/m/d', strtotime('+90 days')) ?>'>90 days</option>
            </select>

虽然提交表单时,如果选择“任意”选项,我希望将其添加到表单中:

<input type='hidden' name='Model' value='Yes' />

对于其他选项(30,60,90天),我只是希望它在没有上述部分的情况下定期提交。

我试图通过将&Model=Yes添加到“Any”的值来解决这个问题,尽管&符号被搞砸了。我可以添加任何javascript或jQuery来解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

这并不难。

将隐藏输入添加到表单并将select修改为:

<select name='Time_Available' onchange="this.form.Model.disabled=(this.options.selectedIndex)? true:false">

如果所选选项发生更改,并且新选择的选项不是第一个,则禁用此选项。

答案 1 :(得分:0)

jQuery可以在五秒内完成。有一些更复杂的方法可以将输入添加到页面中,但我强烈建议您只需将其放在HTML中,而无需JS干预:

<input id="Model" type="hidden" name="Model" value="Yes" disabled="disabled" />

然后你就这样做了。

$("select").change(function () {
   if ($(this).val() == 'Any') {
      $("#Model").attr('disabled', '');
   }
   else {
      $("#Model").attr('disabled, 'disabled');
   }
});

请注意,如果默认情况下选择“任意”,则出于显而易见的原因,您不希望最初禁用“模型”。

顺便说一句,如果你已经检查了select的值,我有点困惑为什么你需要额外的检查。而不是你的脚本检查Model == Yes,为什么不检查Time_Available == Any?

最后,你不能以你描述的方式附加到查询字符串(只是添加&amp;这样的值不起作用)。 &符号将自动编码。如果用户可以通过这种方式向查询字符串添加他们想要的任何内容,那将是一场UI梦魇。