我有一个带有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