2016-12-15 35 views
0

我對提出這個問題感到非常內疚。但是,我試了一切,沒有任何工作......迫使我在這裏問。如果有人建議,我會刪除這個問題。提交表格時輸入值未被結轉

在網站上的鍍鉻控制檯:https://search.cisco.com/search?tab=Cisco&locale=enUS, 我執行以下操作:

  1. document.getElementById("searchT").value = "Hello World!"//works fine
  2. document.getElementById("searchform").submit() ;

1號線正常工作和填補與"Hello World!"輸入。第2行提交了表單和頁面重新加載,但不知何故"Hello World!"在頁面加載時沒有繼續前進。如果有人能解釋它爲什麼會發生,那將會很棒。

+1

不知道你正在使用什麼框架的更多信息 - 這是它應該工作的默認方式。如果頁面已重新加載,則所有表單字段將被設置回其默認值。一些框架可以完成你期望的功能,例如:ASP.Net使用viewstate的舊WebForm模型。 –

回答

0

您正在向輸入字段填充值,然後提交表單。 表單行爲等於點,因此它對頁面進行了重新編碼。 您設置的值的輸入字段沒有任何name atrtibute,所以它在url地址的查詢字段中丟失,它看起來好像沒有提交任何內容。

當您從鍵盤輸入搜索項時,其他腳本執行(也許是ajax)請求,並向您顯示結果,而無需重新加載頁面。

EDITED 當您按下鍵盤上的回車鍵時,腳本正在用?query = searc-term參數重新載入頁面。並且查詢不是您正在填充值的文本輸入的名稱

0

第1步將Hello World!放在搜索字段中。第二步提交搜索表單。它應該帶回Hello World!的搜索結果,但它沒有。

發生了什麼事?

我看了一下該表單的代碼,這是我所看到的:

cisco form code

它像idclassaction正常的HTML表單屬性。

它也有一個額外的財產:ng-submit

快速谷歌搜索ng-submit使我發現這一點:

ngSubmit

  • 指令模塊NG

啓用結合的角度表達式的onsubmit事件。

此外,它防止了默認操作(對於形式意味着將請求發送到服務器,並重新加載當前頁面),但只有當窗體不包含動作,數據的動作,或x-action屬性。

來源:https://docs.angularjs.org/api/ng/directive/ngSubmit

由此,我們可以判斷兩件事情:

  1. 思科採用了棱角分明的ng-submit收集查詢並返回搜索結果。
  2. 該搜索功能的設計不適用於沒有Angular的ng-submit

你一切正常;不幸的是,搜索功能不是通過正常提交表單來設計的;它需要是Angular的ng-submit