iT邦幫忙

1

onchange下拉式選單,選完選項會跳掉

2019-09-18 02:07:186117 瀏覽
  • 分享至 

  • xImage

我在選擇新北市的選項後,會跳回第一個選項
https://ithelp.ithome.com.tw/upload/images/20190918/20121207JJ426OVvUQ.png
以下是我的程式碼

            <form action="" name="sort1" method="POST">
                <select name="city" onchange="checkField(this.value)">
                    <option value="選擇縣市">選擇縣市</option>
                    <option value="台北市">台北</option>
                    <option value="新北市">新北</option>
                    <option value="桃園市">桃園</option>
                    <option value="新竹縣">新竹</option>
                    <option value="苗栗縣">苗栗</option>
                    <option value="台中市">台中</option>
                </select>
            </form>
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
小魚
iT邦大師 1 級 ‧ 2019-09-18 08:11:45

checkField的內容是什麼?
我覺得你是不是觸發了POST事件,
然後...
就跳回第一個了,

  1. 你要從後端帶一個參數到前端,
    然後判斷要選擇哪一個.
  2. 通常除了第一個提示選項以外,
    其他的都會用for之類的迴圈去跑,
    照你這樣子寫程式碼可能很長,
    而且不彈性.
看更多先前的回應...收起先前的回應...
hsien1026 iT邦新手 5 級 ‧ 2019-09-18 22:16:08 檢舉
           <form action="" name="sort1" method="POST">
                <select name="city" onchange="checkField(this.value)">
                    <option value="選擇縣市">選擇縣市</option>
                    <option value="台北市">台北</option>
                    <option value="新北市">新北</option>
                    <option value="桃園市">桃園</option>
                    <option value="新竹縣">新竹</option>
                    <option value="苗栗縣">苗栗</option>
                    <option value="台中市">台中</option>
                </select>
            </form>
        <script>
            function checkField(val)
            {
                var a = (val);
                location.href="websearch-branch.php?city=" +a;
            }
        </script>

不好意思,我是版主,那時候發問後帳號跳成別人的,後來登出又登入提問者就不見了,不好意思麻煩你了。
目前是學生,這是我的專題,因為有好多不懂的,麻煩你指教了。

小魚 iT邦大師 1 級 ‧ 2019-09-18 22:29:58 檢舉

hsien1026
我以為你用的是POST,
結果是GET...
/images/emoticon/emoticon01.gif
這我不知道該怎麼說了...
總之答案就在我上面的回答當中...
不過你這樣子寫要寫很多,
我稍微提示一下吧

<option value="台北市" <?PHP if($value == "台北市"){echo "selected"} ?>>台北</option>

沒有實際測試,
應該是這樣吧,
不過你還要去接收傳過來的資料...

小魚 iT邦大師 1 級 ‧ 2019-09-18 22:41:02 檢舉

然後...
我建議你,
找本書好好研究一下...
要不然我連教都不知道怎麼教了...

hsien1026 iT邦新手 5 級 ‧ 2019-09-18 23:38:47 檢舉

謝謝你的回覆,我再試試,我會去找本書好好學的,真的非常感謝。

不明
【**此則訊息已被站方移除**】
3
dragonH
iT邦超人 5 級 ‧ 2019-09-18 09:11:15

問題不在你給的這個 html code

請貼所有有關的 code

e.g. checkField()

codepen

看更多先前的回應...收起先前的回應...
hsien1026 iT邦新手 5 級 ‧ 2019-09-18 22:26:35 檢舉

謝謝你的回覆,我有附再最上面的回覆上了,非常感謝。

dragonH iT邦超人 5 級 ‧ 2019-09-18 22:31:43 檢舉

hsien1026

你的 function

            function checkField(val)
            {
                var a = (val);
                location.href="websearch-branch.php?city=" +a;
            }

location.href 會有類似換頁的動作

然後你應該是換到同個頁面

所以你認為的選完選項會跳掉

其實是頁面重新 load

最後也就看到你 select 預設的第一個選項

不是很懂你這樣的目的

是想要保留選取的選項嗎

小魚 iT邦大師 1 級 ‧ 2019-09-18 23:25:23 檢舉

我覺得最大的問題是這個...
https://ithelp.ithome.com.tw/upload/images/20190918/20105694isI7Y9lABq.jpg

dragonH iT邦超人 5 級 ‧ 2019-09-18 23:30:10 檢舉

/images/emoticon/emoticon37.gif

hsien1026 iT邦新手 5 級 ‧ 2019-09-18 23:45:47 檢舉

小魚
這是真的...
我會再試試的/images/emoticon/emoticon02.gif

2
ccutmis
iT邦高手 2 級 ‧ 2019-09-18 09:24:55

有天晚上我跟麻吉約好要去夜遊,正準備出門時被阿罵攔下來。

阿罵 : 這麼晚了不要出去賴賴剉,待在家最好。

我 : 阿罵,七月不是過了嗎?

阿罵 : 憨孫,七月過後的鬼更兇啊,因為... 它們都是被通緝的。

我 : ...

/images/emoticon/emoticon38.gif

看更多先前的回應...收起先前的回應...
dragonH iT邦超人 5 級 ‧ 2019-09-18 09:28:03 檢舉

/images/emoticon/emoticon37.gif

iT邦新手 5 級 ‧ 2019-09-18 09:55:56 檢舉

/images/emoticon/emoticon01.gif

ccutmis iT邦高手 2 級 ‧ 2019-09-18 09:58:47 檢舉

https://media.tenor.com/images/1d7be2a6bde81d68277e361e52a0778b/tenor.gif

先不要管7月了……
好不容易現在9月了你知道嗎???

ccutmis iT邦高手 2 級 ‧ 2019-09-18 10:22:06 檢舉

/images/emoticon/emoticon04.gif

dragonH iT邦超人 5 級 ‧ 2019-09-18 10:25:08 檢舉

通緝了兩個月的意思嗎XD /images/emoticon/emoticon48.gif

小魚 iT邦大師 1 級 ‧ 2019-09-18 11:13:55 檢舉

你確定不是快過追溯期(20年)的鬼嗎?
/images/emoticon/emoticon05.gif

七月鬼門開
九月校門開

ccutmis iT邦高手 2 級 ‧ 2019-09-18 12:03:58 檢舉

沒回校門的比沒回鬼門的恐怖...

ccutmis
你說的那個叫做: 8 + 9 , 不 E Y

我要發表回答

立即登入回答