0

这是 php/html 表单文本区域代码

<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 的值?虽然它适用于普通文本字段

4

2 回答 2

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>

请参阅:文本区域

于 2013-02-10T07:08:37.520 回答
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; ?> /> &nbsp; <input type="radio" name="field4" value="0" <?php echo $off; ?> /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>

当然,您可以添加额外的逻辑和样式,但代码的主要问题是 HTML 语法错误,并且 textarea 与其他表单标签不同,并且没有“值”参数。

于 2013-02-10T07:24:55.717 回答