我有使用数据库字段创建的文本框和旁边的编辑链接的“E”。最初,文本字段被禁用。如果用户想要修改DB中的值,他们将单击该链接,并启用它旁边的文本框。问题是它正在修改相同代码编号的第一个文本框。这可能是因为文本字段上的id属性是相同的,我想正确识别文本但失败了。 这是我的代码
<input type="text" name="form_line[code]" size="10"
value='<?php echo bucks($tmp['adj_amount']); ?>' disabled="true" id="editable"/>
<a id="myedit" title="Click to Edit Adjustment Value" href="#" onclick="edit_adj();return false;">E</a>
<script type="text/javascript">
function edit_adj() {
document.getElementById("editable").disabled = false;
}
</script>
输出示例如下所示,如果单击“E”,第一个文本框将启用:(
答案 0 :(得分:1)
我认为这对你有用:
<?php
for ($x=0; $x<=10; $x++) {
?>
<input type="text" name="somename" size="10"
value='<?php echo "hello" ?>' disabled="true" id="editable<?php echo $x ?>"/>
<a id="myedit" title="Click to Edit Adjustment Value" href="#" onclick="edit_adj(<?php echo $x ?>);return false;">Edit</a>
<br/>
<?php
}
?>
<script type="text/javascript">
function edit_adj(id) {
document.getElementById("editable"+id).disabled = false;
}
</script>
希望这有帮助! 从本质上讲,这是为每个文本字段赋予一个唯一的id,并将id传递给启用相关文本字段的javascript。我在本地创建了一个测试页面并且工作正常。