我有一个表单,通过从数据库加载信息来完成某些字段。这些字段可能因帐户而异。
提交表单时,将发送任何数据库信息以及表单中输入的新信息。
但是,用户可以更改(在屏幕上)从数据库输入的信息,虽然这些更改未提交(我的$ Xvariables来自数据库覆盖POSTed $变量),我希望他们还原屏幕数据返回数据库值。
这是我目前所拥有的一个例子,但它不起作用......
<input type="text" name="firstname" size="25" tabindex="4" onchange="if($xfirstname<>'') this.value=$xfirstname" value="<?php echo $firstname;?>"/>
或更好的是,如果有办法,如果他们从数据库加载了值,我怎么能让它们变成不可变的呢?
答案 0 :(得分:1)
只需将readonly="readonly"
放在输入<>
标记内或放置disabled="disabled"
实施例
<input type="text" name="firstname" size="25" tabindex="4" onchange="if($xfirstname<>'') this.value=$xfirstname" value="<?php echo $firstname;?>" readonly="readonly" />
答案 1 :(得分:1)
保持这个:
<input type="text" name="firstname" size="25" tabindex="4"
value="<?php echo $firstname;?>"/>
添加:编辑:抱歉没有看到输入元素上没有ID使用:
<script>
if($('input[name="firstname"]').val().length > 0)
{
$('input[name="firstname"]').attr("disabled", true);
}
</script>
结果:http://jsfiddle.net/4wt9r/6/
但请记住,客户端上的任何内容都可以更改,您的真正过滤/身份验证必须在服务器上完成。