1

我正在尝试制作一个计算器,您可以在其中按下按钮并将其输出到文本框中,我将在 python 中使用它的值来输出答案。但是,当我提交它时,文本框甚至无法在表单中识别。这是我正在尝试做的一个例子。

<html><head><script type="text/javascript"">
function moveNumbers(num) {
var txt=document.getElementById("text").value;
if (num=="del"){ 
txt=txt.slice(0,-1)
}
else if (num=="clr"){
txt=""
}
else{   
txt=txt + num;}
document.getElementById("text").innerHTML = txt;
}
</script>
</head>
<body>
<form action="calc.py" method="POST" >
<textarea maxlength="492" disabled id="text" name="text" rows="4" cols="50"></textarea>
<table>
<tr>
<td class="td1"><button type="button"  class="number" name="number" value="2" onclick="moveNumbers(this.value)">2</button></td>

<td class="td1"><button type="button"  class="number" name="number" value="3" onclick="moveNumbers(this.value)">3</button></td>
<td class="td1"><input type="submit" class="number" value="="></input></td>
</tr>
</table>
</form>

这是我从 python 得到的错误:

/usr/lib/python2.7/cgi.py in getitem (self=FieldStorage(None, None, []), key='text') 539 if item.name == key: found.append(item) 540 if未找到:=> 541 raise KeyError, key 542 if len(found) == 1: 543 return found[0] builtin KeyError = , key = 'text' : 'text' args = ('text',) message ='文本'

4

3 回答 3

1

我认为您的标记中只有一个额外的引号,您将脚本类型指定为文本/javascript。

<html>
<head>
<script type="text/javascript"> <!-- Notice the Extra Quote here in your code -->
function moveNumbers(num) {
var txt=document.getElementById("text").value;
if (num=="del"){ 
txt=txt.slice(0,-1)
}
else if (num=="clr"){
txt=""
}
else{   
txt=txt + num;}
document.getElementById("text").innerHTML = txt;
}
</script>
</head>
<body>
<form action="calc.py" method="POST" >
<textarea maxlength="492" disabled id="text" name="text" rows="4" cols="50"></textarea>
<table>
<tr>
<td class="td1"><button type="button"  class="number" name="number" value="2" onclick="moveNumbers(this.value)">2</button></td>

<td class="td1"><button type="button"  class="number" name="number" value="3" onclick="moveNumbers(this.value)">3</button></td>
<td class="td1"><input type="submit" class="number" value="="></input></td>
</tr>
</table>
</form>

希望这可以帮助

于 2013-08-23T18:44:54.857 回答
1

类型为 submit 的输入将发布数据。那是你需要的吗?我想您应该尝试使用输入类型作为按钮或使用按钮标签。

于 2013-06-01T21:54:47.570 回答
1

textarea 上的 disabled 属性阻止它被提交。

您可以尝试以下方法之一:

一个。使用 readonly 属性而不是 disabled

<textarea maxlength="492" readonly="readonly" id="text" name="text" rows="4" cols="50"></textarea>

湾。将数字存储在隐藏类型的输入以及文本区域中

C。提交时使用 javascript 启用 textarea

于 2013-06-02T09:01:11.300 回答