我正在尝试创建一个动态表单,用户可以选择上传和映像或嵌入YouTube剪辑。
我使用无线电输入尝试了这个:
<script type="text/javascript">
$(".youtube").change(function () {
//check if radio button is checked.
if (this.checked && this.value === "youtube") {
//show a text box 'embedbode' when radio 'youtube' is checked
$("#embedcode").show();
} else if (!this.checked && this.value === "image"){
//hide the text box when 'image' is checked
$("#embedcode").hide();
}
});
</script>
这是html:
<input type="radio" value="image" id="type" name="type" checked='checked' autocomplete="off" />
<label>Image</label>
<input type="radio" value="youtube" id="type" name="type" class="youtube" />
<label>Video</label>
<input id="embedcode" placeholder="embed code" name="embedcode" type="text"/>
默认选择单选按钮image
。当我点击视频单选按钮时,会打开一个文本框,我可以输入视频的嵌入代码。
但是,当我点击回image
时,我是否应该改变我想要上传的内容,嵌入文本框仍然存在。
我看了JS,看不出我哪里错了。
我尝试调整术语并添加额外的else if
但是当我点击返回图像时文本框将无法隐藏。
我哪里错了?
答案 0 :(得分:1)
<script type="text/javascript">
$(document).ready(function(){
$("#embedcode").hide();
$("input[name='type']").change(function () {
if($(this).val() == "youtube")
$("#embedcode").show();
else
$("#embedcode").hide();
});
});
</script>
答案 1 :(得分:0)
当他们检查另一个时,你做了(在这里修改你的代码,成为jQuery):
if (!$(this).prop('checked') && $(this).val() === "image")
现在检查......所以它不会隐藏它。您需要做的就是检查值,因为他们点击了它并且它是一个收音机,它将始终被检查。
if ($(this).val() === "image")
更简单的方法就是:
$(".youtube").change(function () {
$("#embedcode").toggle($(this).val() == "youtube");
});
答案 2 :(得分:0)
<script type="text/javascript">
$(document).ready(function(){
$("#embedcode").hide();
$("input:radio").change(function () {
if($(this).val() == "youtube")
{
$("#embedcode").show();
}
else
{
$("#embedcode").hide();
}
});
});
</script>