jQuery 筆記 – 同步兩個 option buttons 的值
情境 :
在一連串 table 的網頁介面. 如果把 option button 部分設計在最下方. 那當table資料很多的時候就要一直捲動捲到最下方. 小不方便. 所以還要在多設計一個 option button 在網頁的最上方. 但是在同一個 form 如果裡面變數名稱命名不一樣的名稱到 option button 上. 那代表要在 php 裡面去處理那個兩個變數名稱. 也要處理使用者是按了上面的 action button 還是下面的 action button. 看起來有點麻煩.
解法 :
為了簡化這個問題, 我使用 jquery 幫忙同步兩個option buttons 的值. 下列是html部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <form method="POST" action="#"> <h3>Available actions <select id="paction" name="paction"> <option value="on">Power On</option> <option value="off">Power Off</option> <option value="soft">Graceful Shutdown</option> <option value="reset">Reset System (warm boot)</option> <option value="cycle">Power Cycle System (cold boot)</option> </select> <input type="submit" name="submit" value="Perform action"></h3> omit...... <h3>Available actions <select id="paction2" name="paction"> <option value="on">Power On</option> <option value="off">Power Off</option> <option value="soft">Graceful Shutdown</option> <option value="reset">Reset System (warm boot)</option> <option value="cycle">Power Cycle System (cold boot)</option> </select> <input type="submit" name="submit" value="Perform action"></h3> </form> |
命名了兩個 option buttons 的 id 名稱. 但那兩個 option button 的 name 是一樣的. 然後再使用下列 jquery 語法. 就可以將這兩個不同的 option buttons 同步.
1 2 3 4 5 6 7 | $("#paction").change(function() { $("#paction2").val($("#paction").val()); }); $("#paction2").change(function() { $("#paction").val($("#paction2").val()); }); |
其實只要把下面的值同步成真正要處理的值就可以了. 因為網頁 submit 後. 同名稱變數(paction)的話是看最後一個值. 但是為了要求完美. 所以我在把下面的 option button 同步回去第一個 option button
最後看一下 DEMO