iT邦幫忙

2

https://i.imgur.com/FEKEaqA.jpg
連結的圖片中,三個活動id都是radio1,
document.getElementById('radio1').checked = true
我上面的寫法,只能自動選到活動一的選項,
但我想要自動選到id=raio1的value=1169這個
就是活動三的選項,請問該怎麼寫才對,感謝回答

alien663 iT邦研究生 3 級 ‧ 2024-09-02 08:22:03 檢舉
document.getElementsByName
greenriver iT邦研究生 4 級 ‧ 2024-09-02 16:59:02 檢舉
id 不能重複.....
要重複就要改用class
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
Cavey
iT邦新手 5 級 ‧ 2024-09-02 08:52:39
最佳解答

原網頁id用法用錯 所以我這邊使用tag name 跟 value 去指定你要的radio

<input type="radio" name="radio" id="radio1" value="1167">
活動1
<input type="radio" name="radio" id="radio1" value="1168">
活動2
<input type="radio" name="radio" id="radio1" value="1169">
活動3

<script>
	let radio=document.querySelector("input[value='1169']");
	radio.checked=true;
</script>
amex iT邦新手 5 級 ‧ 2024-09-02 09:21:22 檢舉

感謝告知方法。

0
hokou
iT邦好手 1 級 ‧ 2024-09-02 08:15:33

基本上 ID 在網頁內就是獨一無二的,所以最快的方法就是把其他的改為 radio2、radio3
不然就是用 class 找到全部,依順序判斷

备注:文档中的 ID 必须是唯一的。如果一个文档中有两个及以上的元素具有相同的 ID,那么该方法只会返回查找到的第一个元素。

Document:getElementById() 方法

amex iT邦新手 5 級 ‧ 2024-09-02 08:20:52 檢舉

那像圖中那樣,想選活動三的選項,我該怎麼寫才能抓到?謝謝

hokou iT邦好手 1 級 ‧ 2024-09-02 08:59:26 檢舉

以你的圖來看,加上大家的回饋
應該要用 name 或直接以 value

let radio = document.getElementsByName("radio");
radio[2].checked = true; // 陣列以 0 開始
0
YC
iT邦好手 1 級 ‧ 2024-09-02 12:50:39

雖然我沒看過你完整的 html,但是我猜情景是類似這樣:

你想將form的值,調回使用者上次的值

<form name="gendersForm">
  <input type="radio" name="gender" value="M" /> Man
  <input type="radio" name="gender" value="F" /> Woman
</form>

個人認為,正確的做法是

document.gendersForm.gender.value="F";

參考:How to set radio button status with JavaScript

0
chan15
iT邦新手 2 級 ‧ 2024-09-03 08:59:06
<form name="gendersForm">
    <input type="radio" name="activity" id="activity_1" value="1167">
    活動1
    <input type="radio" name="activity" id="activity_2" value="1168">
    活動2
    <input type="radio" name="activity" id="activity_3" value="1169">
    活動3
</form>
document.querySelector('input[name="activity"][value="1169"]').checked = true;
document.gendersForm.activity[2].checked = true;

兩樣都可以,ididentity 的縮寫,一個 DOM 裡面應該要是唯一的,你是用 editor 或 IDE 監控到 html 裡面超過一個 id 的話應該都會警告才對。

我要發表回答

立即登入回答