如何避免发送它们通过显示隐藏的输入字段:无到服务器?(How to avoid sending in

2019-06-21 16:29发布

想象一下,你有,你切换多个领域的知名度形式。 如果没有显示字段,你不希望它的价值是在请求。

你是如何处理这种情况?

Answer 1:

一个表单元素设置为禁用会阻止它去访问服务器,例如:

<input disabled="disabled" type="text" name="test"/>

在JavaScript那岂不是这样的:

var inputs = document.getElementsByTagName('input');
for(var i = 0;i < inputs.length; i++) {
    if(inputs[i].style.display == 'none') {
        inputs[i].disabled = true;
    }
}
document.forms[0].submit();

在jQuery的:

   $('form > input:hidden').attr("disabled",true);
   $('form').submit();


Answer 2:

你可以使用JavaScript来设置残疾人属性。 “提交”按钮,单击事件可能是做到这一点的最佳场所。

不过,我建议不要做这个的。 如果可能的话,你应该过滤服务器上的查询。 这将是更可靠。



Answer 3:

如果你想禁用隐藏的父元素中的所有元素或某些元素,你可以使用

$("div").filter(":hidden").children("input[type='text']").attr("disabled", "disabled");

这个例子http://jsfiddle.net/gKsTS/禁用隐藏的专区内的所有文本框



Answer 4:

关于什么:

$('#divID').children(":input").prop("disabled", true); // disable

$('#divID').children(":input").prop("disabled", false); // enable

要切换隐藏DIV中的所有儿童的输入(选择,复选框,输入,文字区域,等等)。



Answer 5:

一个很简单(但并不总是最方便的)的解决方法是删除“名称”属性 - 该标准要求的浏览器不发送不愿透露姓名的值,我知道所有的浏览器遵守这个规则。



Answer 6:

我想无论是从输入删除值或分离从DOM中输入对象,因此不存在在第一时间进行发布。



文章来源: How to avoid sending input fields which are hidden by display:none to a server?
标签: html http field