这是php / html表单textarea代码
<textarea name="txtDispMsg" cols="1" rows="1" value="<?php if(isset($disp_msg)){echo $disp_msg;} ?>" <?php if(isset($flag) && $flag == 4){echo "div style = 'border:2px solid red;'" . "/div";}?>></textarea>
这里我检查用户是否在textarea中输入了值,无论表格中是否有任何其他错误,它都会留在那里。所以表格中其他字段的数据保留在那里..但不是textarea。为什么?
我使用错误的方法设置/修复textarea的值吗?虽然它适用于普通文本字段
答案 0 :(得分:2)
值未在textarea中使用,请更改
<textarea name="txtDispMsg" cols="1" rows="1" value="<?php if(isset($disp_msg)){echo $disp_msg;} ?>" <?php if(isset($flag) && $flag == 4){echo "div style = 'border:2px solid red;'" . "/div";}?>></textarea>
到
<textarea name="txtDispMsg" cols="1" rows="1">
<?php if(isset($disp_msg)){echo $disp_msg;} elseif(isset($flag) && $flag == 4){echo "<div style='border:2px solid red;'></div>";} ?>
</textarea>
请参阅:textarea
答案 1 :(得分:0)
值不是HTML语法中Textarea标记的属性。如果要在Textarea中显示内容,则必须将内容放在打开和关闭Textarea标记之间。您正尝试通过声明value =“content”来设置内容,而您需要执行以下操作:
<textarea name="fieldName" cols="15" rows="4">CONTENT GOES HERE</textarea>
参见:http://www.w3.org/wiki/HTML/Elements/textarea
如果您希望在提交时不清楚您的值,则必须在页面顶部处理它们以寻找某些操作,然后在表单中设置它们的值。
<?php
// check if values submitted to page and if not, set empty value
// add html escaping just in case
$field1 = (isset($_GET['field1'])) ? htmlspecialchars($_GET['field1']) : "";
$field2 = (isset($_GET['field2'])) ? htmlspecialchars($_GET['field2']) : "";
$field3 = (isset($_GET['field3'])) ? htmlspecialchars($_GET['field3']) : "";
$field4 = (isset($_GET['field4'])) ? htmlspecialchars($_GET['field4']) : "";
// toggle radio button if one was selected
$on = ($field4 == "1") ? "checked" : "";
$off = ($field4 == "0") ? "checked" : "";
?>
<html>
<head><title>Test Page</title></head>
<body>
<h1>Test Page</h1>
<form action="test.php" method="GET">
Field 1: <input type="text" name="field1" value="<?php echo $field1; ?>" /><br />
Field 2: <input type="text" name="field2" value="<?php echo $field2; ?>" /><br />
Field 3: <textarea name="field3" cols="15" rows="5"><?php echo $field3; ?></textarea><br />
Field 4: On <input type="radio" name="field4" value="1" <?php echo $on; ?> /> <input type="radio" name="field4" value="0" <?php echo $off; ?> /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
当然,您可以添加额外的逻辑和样式,但代码的主要问题是HTML语法错误,textarea与其他表单标记不同,并且没有“value”参数。