单击无线电按钮时,用默认值填充表单



我有一个带有3个无线电按钮和3个文本框的表单,单击单击单击按钮,一个输入字段显示了一个输入字段,并使用了其他两个生皮(使用jQuery)。现在,我希望通过填写两个默认值的隐藏字段来提交表单,我试图将值分配给这两个隐藏字段,但没有起作用,

请帮助我,这是我尝试过的,直到知道,并且无法为隐藏的文本字段分配值。

$(document).ready(function(){
    $('input[type="radio"]').click(function(){
        if($(this).attr("value")=="red"){
            $(".box").hide();
            $(".red").show();
        }
        if($(this).attr("value")=="green"){
            $(".box").hide();
            $(".green").show();
        }
        if($(this).attr("value")=="blue"){
            $(".box").hide();
            $(".blue").show();
        }
    });
});
.box{
    padding: 20px;
    display: none;
    margin-top: 20px;
    border: 1px solid #000;
}
.red{ background: #ff0000; }
.green{ background: #00ff00; }
.blue{ background: #0000ff; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <label><input type="radio" name="colorRadio" value="red"> red</label>
    <label><input type="radio" name="colorRadio" value="green"> green</label>
    <label><input type="radio" name="colorRadio" value="blue"> blue</label>
</div>
<form id="myform">
    <div class="red box">
        <input type="text" >            
    </div>
    <div class="green box"><input type="text" ></div>
    <div class="blue box"><input type="text" ></div>           
    <input type="submit">
</form>

据我所知,何时将表单元素设置为 display: none,提交表单时无法捕获其值。您应该以不同的方式隐藏它们,只是不使用display: none

在显示内部提交表单字段:无元素

首先,您的<input type="text" />没有名称,您需要分配它们的名称,以便表单将传递其值"

<input type="text" name="redText" />

您只能使用.val()而不是.attr("value")
要为隐藏的输入文本分配值,您可以使用:

if ($(this).val() == "red") {
    $(".box").hide();
    $(".red").show();
    $(".box input[type=text]").val("It Works!");
    $(".red input[type=text]").val("ahhaaa!");
}
//and so on

您可以考虑使用hidden inputs

<input type="hidden" name="greenHidden" value="the_value_to_be_sent" />

JSFIDDLE DEMO

最新更新