AnA*_*ice 125 html forms html-input
我有一个复选框,在某些条件下,需要禁用.原来HTTP不会发布禁用的输入.
我怎么能绕过那个?提交输入,即使它被禁用并保持输入被禁用?
Fra*_*ita 103
更新:READONLY不适用于复选框
您可以使用disabled="disabled"但此时复选框的值不会显示在POST值中.其中一个策略是在同一表单中添加一个隐藏字段,保存复选框的值,并从该字段读取值
只需disabled改为readonly
mik*_*k-t 89
我已经解决了这个问题.
由于readonly="readonly"标签不起作用(我尝试过不同的浏览器),你必须使用disabled="disabled"
.但是你的复选框的值不会发布...
这是我的解决方案:
要在同一时间获得"只读"外观和POST复选框的值,只需添加一个隐藏的"输入",其名称和值与复选框相同.您必须将其保留在复选框旁边或相同<form></form>标签之间:
<input type="checkbox" checked="checked" disabled="disabled" name="Tests" value="4">SOME TEXT</input>
<input type="hidden" id="Tests" name="Tests" value="4" />
Run Code Online (Sandbox Code Playgroud)
另外,只是为了让你知道readonly="readonly", readonly="true", readonly="",或者只是READONLY不解决这个问题!我花了几个小时来搞清楚!
此参考也不相关(可能还没有,或者不再,我不知道):http: //www.w3schools.com/tags/att_input_readonly.asp
Tri*_*ing 73
如果您对使用JQuery感到满意,请在提交表单时删除disabled属性:
$("form").submit(function() {
$("input").removeAttr("disabled");
});
Run Code Online (Sandbox Code Playgroud)
jes*_*vin 10
您可以这样处理...对于每个复选框,创建一个具有相同name属性的隐藏字段.但是使用您可以测试的某个默认值设置该隐藏字段的值.例如..
<input type="checkbox" name="myCheckbox" value="agree" />
<input type="hidden" name="myCheckbox" value="false" />
Run Code Online (Sandbox Code Playgroud)
如果在提交表单时"选中"复选框,则表单参数的值将为
"agree,false"
Run Code Online (Sandbox Code Playgroud)
如果未选中该复选框,则该值将为
"false"
Run Code Online (Sandbox Code Playgroud)
你可以使用任何值而不是"false",但你明白了.
<input type="checkbox" checked="checked" onclick="this.checked=true" />
Run Code Online (Sandbox Code Playgroud)
我从问题开始:"如何发布/提交被禁用的输入复选框?" 在我的回答中,我跳过评论:"如果我们要禁用复选框,我们肯定需要保留一个带前缀的值(选中或取消选中),我们也希望用户知道它(否则我们应该使用隐藏类型和不是复选框)".在我的回答中,我认为我们总是要保持一个复选框检查,并且代码以这种方式工作.如果我们点击那个ckeckbox它将永远被检查,其值将被POSTED/Submitted!以同样的方式,如果我写onclick ="this.checked = false"没有checked ="checked"(注意:默认是未选中)它将永远未选中,其值将不是POSTED/Submitted!.
小智 7
最简单的方法是:
<input type="checkbox" class="special" onclick="event.preventDefault();" checked />
Run Code Online (Sandbox Code Playgroud)
这将阻止用户取消选中此复选框,并且在提交表单时仍会提交其值.如果您希望用户无法选中此复选框,请选中此选项.
此外,您可以在满足特定条件后使用javascript清除onclick(如果这就是您所追求的).这是一个肮脏的小提琴,显示我的意思.它并不完美,但你得到了要点.
小智 7
创建一个CSS类,例如:
.disable{
pointer-events: none;
opacity: 0.5;
}
Run Code Online (Sandbox Code Playgroud)
应用此类而不是禁用属性