选择特定选择值时显示隐藏输入

Posted

技术标签:

【中文标题】选择特定选择值时显示隐藏输入【英文标题】:Making Hidden Input Appear when Specific Select Value is Chosen 【发布时间】:2013-04-08 11:29:20 【问题描述】:

我正在制作一个自定义表单,以使用隐藏的 html 变量向 PayPal 发送信息。这比 PayPal 更像是一个 jQuery 问题。我有一个<select> 下拉菜单,我希望只有在为<select> 菜单选择某个值时才会出现隐藏的输入。例如:

<form class="test_form">
    <select class="test_select">
        <option value="test1">Test 1</option>
        <option value="test2">Test 2</option>
    </select>
    <input type="submit" value="submit" />
</form>

假设,如果我选择“test2”,我希望隐藏的输入出现在表单中。这是我使用过的代码,但它似乎不起作用:

<script>
$('.test_form').change(function()
if ($(".test_select").val() == 'test2')
     $("#test_form").html("<input type="hidden" name="weight" value="0.22" />");

);
</script>

当我选择某个值时,我该怎么做才能使它出现在我的代码中?感谢您的帮助!

【问题讨论】:

请注意,您的字符串已损坏 - 您可以在 hiddenweight 的语法突出显示中看到它。 我能想到的除了 ahren 的声明之外的唯一一件事就是将它放在 jQuery(function($) 是的,我们不知道#test_form 是什么,也不知道它是否存在。 【参考方案1】:

检查一下FIDDLE,不要只是复制和使用,检查你的错误

$(function()
    $('.test_select').change(function()
        if ($(".test_select").val() == 'test2')
            $(".test_form").append($('<input type="hidden" name="weight" value="0.22" />'));
        
    );
);

【讨论】:

【参考方案2】:

最好的办法是将输入保留在 html 中,但将其隐藏。然后在您喜欢时使其淡入

<input type="text" style="display:none" id="hiddeninput">
....
....
<script>
function disp()
    $('#hiddeninput').fadeIn(1000);

</script>

【讨论】:

【参考方案3】:

把你的代码改成这个

$('.test_select').change(function() 
    if ($(".test_select").val() == 'test2') 
        $('<input>').attr(
            type: 'hidden',
            value: '0.22',
            name: 'weight'
        ).appendTo('form');
    
);

【讨论】:

【参考方案4】:

将此添加到表单内的代码中

<div id="test2" class="tests" style="display: none;">
 <input type="text" name="yourname"/>
</div>

将脚本更改为

$('.test_select').change(function() 
  $('.tests').slideUp("slow");
  $('#' + $(this).val()).slideDown("slow");
);

所以如果你选择 test2 它将显示文本字段,否则它将隐藏文本字段

【讨论】:

以上是关于选择特定选择值时显示隐藏输入的主要内容,如果未能解决你的问题,请参考以下文章

在 Woocommerce 中选择的运输方式更改时显示或隐藏 html 元素

在 HTML 输入字段中选择文件时显示确认

在自动完成输入上写入时显示/隐藏按钮

Select2 多框占位符未在隐藏时显示,然后使其可见

如何在运行时显示/隐藏列?

在动态 jQuery 表单中选择特定选项时显示输入