我正在创建一个演示页面,其中必须禁用某些设置字段。我已经尝试禁用输入,其值保持不变,只是显示为灰色。我使用disabled =“true”禁用了输入。提交表单时,尽管之前存在,该值仍会消失。如何在同时禁用所述字段的同时防止值消失?
答案 0 :(得分:5)
如果要显示和不更改值,可以使用readonly
<input type="text" name="xxx" value="xxx" readonly="readonly" />
如果您希望隐藏值并将其提交到操作文件,则可以使用type = hidden
<input type="hidden" name="xxxx" value="xxx" />
有关HTML输入标签的更多信息,请点击此处 http://www.w3schools.com/tags/tag_input.asp
答案 1 :(得分:4)
disabled
表单字段。
避免此问题的最常见方法是让他们readonly
并添加input[readonly] { ... }
css规则,使文字变为灰色,就像在禁用字段中一样。
您可能还想使用一些JavaScript来防止它被聚焦;如果你有jQuery可能看起来像这样:
$('input[readonly]').live('focus', function(e) {
$(this).blur();
});
答案 2 :(得分:1)
使用readonly属性而不是禁用
另一种方法是在PHP会话中存储值并将它们保存在服务器上。
答案 3 :(得分:0)
您还可以使用具有正确值的同名隐藏字段并保留已禁用的字段。虽然不能完全信任隐藏/只读字段中的数据,因为它们仍然可以更改(通过Web开发工具或类似工具)
答案 4 :(得分:0)
在这里提出建议。
您可以使用Javascript正常禁用该字段,但在禁用字段之前,您可以使用Javascript将该字段的值输入到隐藏字段中。
function runme() {
var newval = $('#field1').val();
$('#hiddenfield').val(newval);
$('#field1').attr('disabled', 'disabled');
}
<input id="field1" name="field1" type="text" value="this val" />
<input id="hiddenfield" name="hiddenfield" type="hidden" />
<input type="button" onclick="runme();" />
答案 5 :(得分:0)
对于输入type =“ file”,请确保执行以下操作:
<style>
input[type=file][readonly] {
pointer-events: none;
}
</style>
<script>
$('input[type="file"]').prop('readonly', true);
</script>