iT邦幫忙

0

alert無法跳出來

  • 分享至 

  • xImage

在書上學習到如何選取到正確的radio選項並跳出alert視窗顯示good或sad
可是我的函式放在原網頁的script裡面可以實行,放到額外另加的js網頁就無法跳出alert
可以幫我看一下是哪裡出了問題嗎? 感謝

元網頁 test4.html

<html>
<head>
<meta charset="utf-8"/>
<title>javascript</title>
<script type= "text/javascript" language= "javascript" src= "javascript2.js" >

</script>
</head>
<body>
<h3>加法<h3>
<form name="form1" onsubmit="kuwaeru();return false;">
20+16=?
<input type="radio" name="answer" value="2016" required>2016
<input type="radio" name="answer" value="36" required>36
<input type="radio" name="answer" value="99" required>99
<input type="radio" name="answer" value="22" required>22
<input type="submit">
</form>
</body>
</html>

額外另家的網頁 javascript2.js

function kuwaeru(){
	var all = document.forms["form1"].elements["answer"];
	if(all[1].checked)
	alert("good");
	else alert("sad");	
}
看更多先前的討論...收起先前的討論...
測試你的代碼后,一切正常(Firefox v52),無任何問題。
radio 物件是單選的,他回傳也只有 單一值
除了樓下一樓的寫法外,可以簡單點用 值來判斷
function kuwaeru(){
var answer= document.forms["form1"].elements["answer"].value;
if(answer== 36)
alert("good");
else alert("sad");
}
然後 你那個 radio 的屬性 required 要拿掉
<input type="radio" name="answer" value="2016" >2016
<input type="radio" name="answer" value="36" >36
<input type="radio" name="answer" value="99" >99
<input type="radio" name="answer" value="22" >22

剛剛看上面 radio 的 name 上午寫的有錯誤,這邊修正一下
對樓主來說,重點是“為什麼”有問題,而不是“怎麼做”才最佳。
radio 物件 是單選的 ( 同一個 NAME 就是同一個群組,多選項只允許一個答案 )
還有,四個項目都是required ,印象中在 radio 物件 不能用這個屬性
一樓的方法,不建議,因為會造成 四個項目都能選擇,因為它會被當作四個物件,每個物件只有一個項目
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
小哈
iT邦新手 4 級 ‧ 2017-04-17 11:00:11

有問題再提出來:)

<html>
<head>
<meta charset="utf-8"/>
<title>javascript</title>
<script  >

function kuwaeru(){
var all1 = document.forms["form1"].elements["answer1"];
var all2 = document.forms["form1"].elements["answer2"];
var all3 = document.forms["form1"].elements["answer3"];
var all4 = document.forms["form1"].elements["answer4"];
if(all2.checked)
alert("good");
else alert("sad");	
}

</script>
</head>
<body>
<h3>加法<h3>
<form name="form1" onsubmit="kuwaeru();">
20+16=?
<input type="radio" name="answer1" value="2016" >2016
<input type="radio" name="answer2" value="36" >36
<input type="radio" name="answer3" value="99" >99
<input type="radio" name="answer4" value="22" >22
<input type="submit">
</form>
</body>
</html>
小哈 iT邦新手 4 級 ‧ 2017-04-17 12:02:25 檢舉

看這個是否符合您的需求

<html>
<head>
<meta charset="utf-8"/>
<title>javascript</title>


<script >

function kuwaeru(){
var all1 = document.forms["form1"].elements["answer1"];
var all2 = document.forms["form1"].elements["answer2"];
var all3 = document.forms["form1"].elements["answer3"];
var all4 = document.forms["form1"].elements["answer4"];

if(form1.answer1.checked == "" && form1.answer2.checked == "" && form1.answer3.checked == "" && form1.answer4.checked == "") 
        {
                        alert("請點選選項提交。");
        }
else {
if(all2.checked)
alert("good");
else alert("sad");	
}
}

</script>
</head>
<body>
<h3>加法<h3>
<form name="form1" onsubmit="kuwaeru()">
20+16=?
<input type="radio" name="answer1" value="2016" >2016
<input type="radio" name="answer2" value="36" >36
<input type="radio" name="answer3" value="99" >99
<input type="radio" name="answer4" value="22" >22
<input type="submit" >
</form>
</body>
</html>

我要發表回答

立即登入回答