如何使用html&;控制输入字段的发送与否;javascript?

如何使用html&;控制输入字段的发送与否;javascript?,javascript,html,Javascript,Html,情况就是这样 有一个输入字段仅显示为display:none ->将此命名为“隐藏的\u输入\u字段” 还有一个按钮可以将其更改为display:block 我想发送这个参数,如果它被显示,如果它是隐藏的,不要发送这个参数 但是在我的例子中,这个输入字段只是没有显示在视图中,但是它存在于表单标记中,所以它总是发送这个参数,不管它是否隐藏 我可以问一个好的解决方案吗?当输入被隐藏时,您可以删除“name”属性,然后在显示字段后将其带回来 试试这个: <!DOCTYPE html> &l

情况就是这样

有一个输入字段仅显示为
display:none
->将此命名为“隐藏的\u输入\u字段”

还有一个按钮可以将其更改为
display:block

我想发送这个参数,如果它被显示,如果它是隐藏的,不要发送这个参数

但是在我的例子中,这个输入字段只是没有显示在视图中,但是它存在于表单标记中,所以它总是发送这个参数,不管它是否隐藏


我可以问一个好的解决方案吗?

当输入被隐藏时,您可以删除“name”属性,然后在显示字段后将其带回来

试试这个:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Test</title>
<style type="text/css">
input#hidden_input_field {
    display: none;
}
</style>
</head>
<body>
<form action="http://google.ru/" method="post">
<input id="hidden_input_field" type="text">
<button id="reveal">Reveal the field</button>
<input type="submit" value="Send">
</form>
<script type="text/javascript">
var field = document.getElementById("hidden_input_field");
var button = document.getElementById("reveal");
button.onclick = function() {
    button.style.display = "none";
    field.style.display = "block";
    field.setAttribute("name", "name_for_the_parameter");

    // This is necessary for preventing the default
    // browser’s behavior: submitting the form.
    return false;
};
</script>
</body>
</html>

试验
输入#隐藏(输入)字段{
显示:无;
}
揭示领域
var field=document.getElementById(“隐藏的输入字段”);
var按钮=document.getElementById(“显示”);
button.onclick=函数(){
button.style.display=“无”;
field.style.display=“block”;
field.setAttribute(“name”,“name”表示参数);
//这对于防止默认设置是必要的
//浏览器行为:提交表单。
返回false;
};

默认情况下,文本字段是隐藏的,但单击“显示”按钮后,将显示该字段。虽然它是隐藏的,但它没有“name”属性,因此如果您提交表单,相应的参数不会包含在请求中。显示字段后,“name”属性将添加到元素中,因此如果您随后提交表单,相应的参数将包含在请求中。

谢谢,因此name属性就是要点,发送或不发送参数:)可能切换
disabled
属性在语义上更正确。我不知道您是否需要,但您必须执行服务器检查,即使表单中不存在隐藏字段,因为它很容易欺骗表单