2013-06-01 54 views
1

我想製作一個計算器,您可以按下按鈕並將其輸出到文本框中,我將使用它的值與python輸出答案。但是,當我提交它時,文本框甚至不會在表單中被識別。這是我想要做的一個例子。html表單不能識別輸入

<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> 

這是我從蟒得到錯誤:

/usr/lib/python2.7/cgi.py在的GetItem(個體=的FieldStorage(無,無, [] ),key ='text')539 if item.name == key:found.append(item)540 if not found:=> 541 raise KeyError,key 542 if len(found)== 1:543 return found [0]內建KeyError =,鍵= 'text':'text'args =('text',)message ='text'

+0

這是錯誤,我從蟒蛇 /usr/lib/python2.7/cgi.py獲得__getitem __(自=的FieldStorage(無,無,[]),鍵='text') 539 if item.name == key:found.append(item) 540 if if not found: => 541 raise KeyError,key 542 if len(found)== 1: 543 return found [0] builtin KeyError = ,key ='text' :'text' args =('text', ) message ='text' –

+0

不確定爲什麼這需要downvoted。對我來說似乎是一個有效的問題。 – scdove

回答

1

類型爲submit的輸入將發佈數據。那是你需要的嗎?我想你應該嘗試使用輸入類型作爲按鈕或使用按鈕標籤。

+0

即使我改變這種方式,我也會得到同樣的錯誤。例如,當我將表單更改爲GET,並查看網站欄中出現的內容時,calc.py後面沒有任何內容 –

1

textarea上的禁用屬性阻止了它被提交。

你可以嘗試以下操作之一:

一個。使用禁用的只讀屬性intead

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

b。將數字存儲在類型隱藏的輸入以及文本區域中

c。在提交時使用JavaScript啓用textarea

1

我認爲在標記中只有一個額外的引用,其中您將腳本指定爲text/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> 

希望這有助於