我正在尝试在单击按钮时使用Post方法发送textarea的值。
代码非常简单:
<html>
<head>
</head>
<body>
<form action="/editFile" name="confirmationForm" method="post">
<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm">
<out value="#{user.getFileContent}"/>
</textarea>
<input type="submit" value="Email" class="submitButton" id=""/>
</form>
</body>
</html>
要在完成此请求时获取此数据,我使用的是CWF Web框架,而且方法非常简单:
void editFileController::doPost(CWF::Request &request, CWF::Response &response) const
{
QString out = request.getParameter("confirmationText");//this will give me the value of the widget "confirmationText" from HTML
QString out1 = request.getParameter("confirmationForm");
}
为了获得提交的价值,这是以这种方式完成的:
<input type="file" name="test"/>
request.getPatameter("test"); //all works ok
但是对于第一个例子(带有textarea的例子)我不能设置它在按下按钮时发送textarea的值。 任何人都可以给我一些关于如何解决这个问题的想法吗?这个框架只知道给我一个特定的名称的值。所以,不知怎的,我应该在按下时用textarea的值设置按钮的值。
谢谢。
答案 0 :(得分:2)
textarea需要属于您提交的表单。
由于您有form="confirmationForm"
,因此它属于id="confirmationForm"
不存在的表单。
从form
开始标记中删除<textarea>
属性。
您的表单已name="confirmationForm"
。在HTML {4}上标记的HTML之前,name属性与id
属性具有类似的用途,用于在20世纪90年代后期HTML 4出现时对元素的客户端引用。
二十年后,没有理由为客户端目的提供元素id
属性。
(提供表单控件,如name
<textarea>
属性,以便为服务器端使用提交数据仍然是正确的。)