我有一个表单 obs_form.php
女巫是通过 fancybox 加载的。该表单具有添加或编辑观察值的作用。这是通过 textarea
完成的。
echo '<textarea id="obs" name="obs" autocomplete=off rows="0" cols="0">'.$row['obs'].'</textarea>';
表单及其功能在 Firefox 中完美运行。 问题来自 IE:假设我们已经在数据库中添加了评论,并且在保存后(信息存储在数据库中)我们意识到我们需要对评论进行一些修改。我们单击编辑按钮对评论进行修改,并将信息保存到数据库中。 到现在为止一切都很好……但是如果我们想对文本进行一些其他修改,那就倒霉了。因为文本区域显示的是原始文本(我认为来自现金)而不是我们上次保存的文本....
我试图在 obs_form.php
之上放置休闲脚本,以便 textarea 的值为 null 并强制从 DB 中读取它:
<script type="text/javascript">
$(document).ready(function () {
document.getElementById("obs").value = '';
return false;
});
</script>
但是它不起作用……我哪里做错了?
代码:
<script type="text/javascript">
$(document).ready(function () {
$("#obs").text('');
return false;
});
</script>
<?php //-------------------------------------------------------------- adauga Observatie
include 'mysql_conect.php';
$page=$_REQUEST['page'];
$proiect_id=$_REQUEST['proiect_id'];
$azi= strtotime ("today");
$data= date("Y-m-d",$azi);
$task_id = $_REQUEST["task_id"];
$obs_id = $_REQUEST["obs_id"];
$actiune="adauga";
if ($_REQUEST["action"]=="editare") {
$query=mysql_query('SELECT * FROM obs WHERE obs_id='.$obs_id) or die ("trrr");
$row=mysql_fetch_array($query);
$actiune="editeaza";
}
echo '<div id=obsform>';
echo '<form name=obs id=obs method=post action=obs_editare_'.$page.'.php?action='.$actiune.' autocomplete="off">';
echo '<input type=hidden name=task_id value='.$task_id.'>';
echo '<input type=hidden name=proiect_id value='.$proiect_id.'>';
echo '<input type=hidden name=obs_id value='.$obs_id.'>';
echo '<input type=hidden name=page value='.$page.'>';
echo '<input type=hidden name=data_obs readonly="readonly" value='.$data.'>';
echo '<table border=0 cellpading=2 cellspacing=0 width=100%>';
echo '<tr>';
echo '<td>';
echo '<label>Observatie</label>';
echo '<textarea id="obs" name="obs" autocomplete=off rows="0" cols="0">'.$row['obs'].'</textarea>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<label>User</label>';
echo '<input type=text name=user value="'.($row['user']).'">';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan=2>';
echo '<div class=form_diferentiator></div>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan=2 style=text-align:center><input type=submit value='.$actiune.'></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
echo '</div>';
?>
最佳答案
textarea 值在标签中而不是在 value 属性中!
$(document).ready(function () {
document.getElementById("obs").innerHTML = '';
return false;
});
更好的方法是jquery的.val()方法
$(document).ready(function () {
$("#obs").val();
});
关于php - 使用 fancybox 打开的表单中的 textarea 元素不会清除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564578/