在HTML / JavaScript中基于用户选择动态删除表单元素

时间:2017-10-22 00:32:26

标签: javascript html forms element

我试图在选择No单选按钮时删除上传文件的选项,但是当我点击No时它不会消失。在JavaScript方面,我不知道我在做什么。如何让它消失(或回来)。

NoReverseMatch

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您不能只将removeElement();放在html标记的中间。

我假设您要隐藏文件标签?您首先要删除required

您需要在No。

上添加一个事件监听器

在jQuery中,这看起来像这样

$('#no').change(
    function() {
       if ($(this).is(':checked') && $(this).val() == 'no') {
            $(this).hide(); //Change this for the id of the element you want
        }
        else {
            $(this).show(); //Change this for the id of the element you want
        }
    });

部分受this source

启发

如果您正在寻找纯JavaScript,那么这就是我的解决方案:

<form method="post" enctype="multipart/form-data" onsubmit="return validateForm()">
<input type="submit" value="Submit" /><br>
<label for="fname">First Name:</label>
<input type="text" required /><br>
<label for="lname">Last Name:</label>
<input class="lname" type="text" required/><br>
<label for="email">Email:</label>
<input class="email" type="text" required/><br>
<input type="radio" name="file" value="yes" id="yes" onclick="handleChange(false);" />
<label for="Yes">Yes</label>
<input type="radio" name="file" value="no" id="no" onclick="handleChange(true);" />
<label for="No">No</label><br>
<p><input type="file" size="30" id="fileUpload"></p>
</form>

<script>
    function validateForm() {
        window.open("https://www.stackoverflow.com");
    }

    function handleChange(remove) {
        var element = document.getElementById('fileUpload');
        if (remove)
            element.style.display = 'none';
        else 
            element.style.display = 'block';
    }

</script>

(未经测试)

答案 1 :(得分:0)

表示隐藏:

document.querySelectorAll('input[type=file]').style.display = 'none';

表示:

document.querySelectorAll('input[type=file]').style.display = 'block'; //or ''