iT邦幫忙

0

Html Form tag 顯示問題

想請問一個Html問題

我在Form裡在包Form,內層的第一個Form會消失,想請問如何解決? 以及原因是甚麼?

範例: https://jsfiddle.net/8ef4hxvm/

https://ithelp.ithome.com.tw/upload/images/20190927/201101259FdZJmGICv.png

內層的第一個Form沒有正常顯示

不明
【**此則訊息已被站方移除**】
ccutmis iT邦高手 9 級 ‧ 2019-09-27 12:42:45 檢舉
In the official W3C XHTML specification, Section B.
"Element Prohibitions", states that:

"form must not contain other form elements."
w4560000 iT邦新手 5 級 ‧ 2019-09-27 12:58:28 檢舉
https://jsfiddle.net/1p75rkz6/
我在跑內層的Form之前 加了一個無意義的Form
現在可以正常顯示,只是這樣看Code就會很奇怪

2 個回答

0
小魚
iT邦大師 1 級 ‧ 2019-09-27 12:23:54

正常來說form只會有一個吧,
包那麼多form的原因是什麼?

看更多先前的回應...收起先前的回應...
w4560000 iT邦新手 5 級 ‧ 2019-09-27 12:50:59 檢舉

我的頁面是一個查詢頁,查詢結果是用Table顯示
而我需要為每一筆row做一個按鈕跳轉到編輯頁,
我是用.Net MVC,原本寫法是用Html.ActionLink跳轉,
但我想用POST資料過去Controller,查了一下發現Html.ActionLink只有Get能用,後來改用Ajax.ActionLink雖然可行,但是公司的專案有為每個cshtml頁面做js的作用域設定(指定哪個頁面只能使用某些js),而我用Ajax.ActionLink雖然畫面可以,但是JS在做作用域設定會出錯,因為當前頁面還沒Render起來抓不到,而我也不可能去改專案底層的架構,所以又換別的方法,目前想在包Html.BeginForm做跳轉最省事,不過就遇到我發問的問題了,若這個方法不行,那我就只能用Ajax打過去,但Success後還要處理跳轉頁面的問題比較麻煩一點,所以想說用form能解決就用form解決。

ccutmis iT邦高手 9 級 ‧ 2019-09-27 13:22:53 檢舉

沒寫過 .net mvc,不過我覺得用 巢狀form 這想法是弄錯方向。

大原則:一個頁面一個form就好,
你可以在每個row的按鈕按下的時候,用JS去修改form的屬性內容,
例如網頁一開始 form action=""(預設),
在按下row button時把 form action 設值(這裡可能也要設一些隱藏input元素來存你這個row的data),然後再送出表單就ok了...
(這樣的架構不管你頁面有幾個row都能套用)
以上只是個想法,提供您參考。

咖冰拉 iT邦新手 4 級 ‧ 2019-09-27 13:31:02 檢舉

使用AJAX 甚至可以略過form
完全不用form 也可以喔

w4560000 iT邦新手 5 級 ‧ 2019-09-27 13:32:27 檢舉

你的做法似乎可行 謝謝你

w4560000 iT邦新手 5 級 ‧ 2019-09-27 13:37:34 檢舉

to 冰水: 是,不過Ajax打完我還要處理跳轉頁面問題,而且參數也會顯示在Url上,這樣跟我用Get丟過去就一樣意思了。
還是我理解有誤的話 在麻煩指正 謝謝

小魚 iT邦大師 1 級 ‧ 2019-09-27 13:41:20 檢舉

現在很多都是用類似ajax的方式,
不會透過後端跳轉頁面.
另外我建議你還是學學Html吧,
不需要被微軟自己開發的那些方法框住了.

ccutmis iT邦高手 9 級 ‧ 2019-09-27 13:54:21 檢舉

form 跟 ajax 的方式都會是最好的嘍,
牛刀跟殺豬刀在手,想用牛刀殺豬或是豬刀殺牛都看自己高興...
/images/emoticon/emoticon25.gif

dragonH iT邦大師 1 級 ‧ 2019-09-27 13:57:26 檢舉

ccutmis

可以拿豬殺牛嗎 /images/emoticon/emoticon01.gif

小魚 iT邦大師 1 級 ‧ 2019-09-27 14:32:26 檢舉

dragonH
可以拿 馬 去殺 雞
/images/emoticon/emoticon39.gif

dragonH iT邦大師 1 級 ‧ 2019-09-27 14:33:25 檢舉

/images/emoticon/emoticon37.gif

ccutmis iT邦高手 9 級 ‧ 2019-09-27 15:38:09 檢舉

/images/emoticon/emoticon30.gif

2
dragonH
iT邦大師 1 級 ‧ 2019-09-27 12:52:56

或許你要反過來思考

你的需求是什麼

為什麼會需要在 form 裡寫 form

純 show 文字的話

可以參考

codepen

不過相信你的需求應該不是這個

看更多先前的回應...收起先前的回應...
w4560000 iT邦新手 5 級 ‧ 2019-09-27 12:55:35 檢舉

需求我補充在第一個回復底下了,寫的有點長 不好意思

dragonH iT邦大師 1 級 ‧ 2019-09-27 13:26:55 檢舉

w4560000

不熟 .net

不過你的問題應該不是 .net

你可以在點選按鈕時

將 user 導到編輯頁面並帶入 data id

e.g.

/edit?id = 1

然後

編輯頁面先根據 id 值 帶出該筆資料

當 user 編輯完成送出資料時

再將編輯的資料 post 到 後端

w4560000 iT邦新手 5 級 ‧ 2019-09-27 13:33:32 檢舉

不過 我不想用Get的方式導向編輯頁QQ

dragonH iT邦大師 1 級 ‧ 2019-09-27 13:41:56 檢舉

w4560000

也可以呀

沒有說一定要用 get

dragonH iT邦大師 1 級 ‧ 2019-09-27 13:47:31 檢舉

w4560000

這給你參考

codepen

我要發表回答

立即登入回答