沒有太多的東西可能導致它不會出現在您的表單中。我的罪魁禍首是:
- 看着錯誤的文件/服務器。
- 頁面正在通過
cflocation
或其他方式(javascript location.replace()或location.href = x)重定向 - 即使重定向將瀏覽器返回到同一頁面,也會導致該問題。
- 表單變量被剝離出來的地方進一步上漲,我會在
onRequestStart
- 名爲「variables.form」局部變量創建並設置爲一個結構進一步上漲猜測 - 不太可能,但我想這是可能有人會一不小心喜歡寫東西
<cfset form = url />
,這可能會導致該
通常,當這樣的事情發生在我身上,在過去,我發現我一直在觀察在瀏覽器中錯誤的文件。通常我會看到錯誤域名上的相同文件,例如查看生產服務器而不是開發服務器。
如果您結合您的代碼段上方成一個單一的文件中像這樣(test.cfm):
<cfdump var="#form#" />
<form name="abc" id="abc" method="post" action="test.cfm" enctype="multipart/form-data">
<input type="submit" name="btnSubmit" id="btnSubmit" value="OK" />
</form>
這應該給你一些洞察到你的問題。請注意,我刪除了表單操作中的前導斜槓/
,以便此表單將自行發佈。當我第一次查看這個模板時,我看到一個空的結構體(後面跟着按鈕),因爲我還沒有在表單範圍中添加任何東西。當我提交表單時,我會在結構中看到兩個元素,fieldnames和btnSubmit。這是另一個很好的指標,如果你沒有看到表單結構中的字段名,那麼你的CFML頁面可能沒有收到表單提交。如果你知道你正在查看正確的頁面,並且你已經提交了表單並且你還沒有字段名稱條目,那麼我會開始尋找潛在的瀏覽器重定向。
您可能還想在同一個目錄中添加一個空的Application.cfc,以確保沒有應用程序干擾它。 onRequestStart中的某些東西可能會剝離出名稱爲「btnSubmit」的表單變量,或者甚至是名稱中任何位置的字符串「submit」的任何形式變量。我不希望它 - 但我會尋找其他原因,如cflocation
標籤第一。
什麼顯示在cfdump中? –
你使用'http:'而不是'file:'訪問表單嗎? –