私のコードには5つのラジオボタンがあり、デフォルトでは1つのセットがチェックされています。ラジオボタンをクリックすると、setMode()
関数が呼び出されますが、どのボタンがチェックされているかを確認するテストは失敗します。ラジオボタンはダブルクリックすると値が変わるだけですか?
setMode()
と同じラジオボタンをクリックすると、テストがtrueを返します。 テストはif(document.getElementById("rcool").checked)
私はマウスイベントとテストを変更しようとしました。 .checked=="true"
および.checked=="checked"
。 jQueryで似たような話題しか見つけられませんでしたが、私はそれほど慣れていないので、理解できませんでした。
私はFirefox 47.0を使用しており、Firebug 2.0.17を使用してエラーをチェックしています。 Firebugの使い方がよくわからず、次に何を試していいのかわかりません。
ご意見やご感想をいただければ幸いです。
var options = ["power=off","mode=heat","temp=20"];
var temp = 20;
function power() {
var pwr = document.getElementById("powerBtn");
var pwrtxt;
if(pwr.innerHTML=="OFF"){
pwrtxt = "power=on";
pwr.innerHTML = "ON";
}
else {
pwrtxt = "power=off";
pwr.innerHTML = "OFF";
}
options[0] = pwrtxt;
document.getElementById("textOutput").value = options;
}
function setMode(){
if(document.getElementById("rheat").checked)
options[1] = "mode=heat";
if(document.getElementById("rcool").checked)
options[1] = "mode=cool";
if(document.getElementById("rdry").checked)
options[1] = "mode=dry";
if(document.getElementById("rauto").checked)
options[1] = "mode=auto";
if(document.getElementById("recono").checked)
options[1] = "mode=econo";
document.getElementById("textOutput").value = options;
}
function updateTemp(){
var tempString = "temp=";
options[2] = tempString.concat("",temp);
document.getElementById("textOutput").value = options;
}
function increaseTemp(){
temp += 1;
if(temp>31) {
temp = 31;
}
updateTemp();
}
function decreaseTemp(){
temp -= 1;
if(temp < 16){
temp = 16;
}
updateTemp();
}
function stopTime(){
}
function startTime(){
}
function incTime(){
}
function decTime(){
}
<!DOCTYPE html>
<html>
<body>
<button type="button" id="powerBtn" onmouseup="power()">OFF</button>
<button type="button" id="increase" onmouseup="increaseTemp()">Up</button>
<button type="button" id="decrease" onmouseup="decreaseTemp()">Down</button>
<br>
<input type="radio" id="rheat" name="mode" onmouseup="setMode()" value="heat" checked="checked">HEAT<br>
<input type="radio" id="rcool" name="mode" onmouseup="setMode()" value="cool">COOL<br>
<input type="radio" id="rdry" name="mode" onmouseup="setMode()" value="dry">DRY<br>
<input type="radio" id="rauto" name="mode" onmouseup="setMode()" value="auto">AUTO<br>
<input type="radio" id="recono" name="mode" onmouseup="setMode()" value="econo">ECONOCOOL<br>
<br>
<button type="button" id="stopTmr" onmouseup="stopTime()">Stop Time</button>
<button type="button" id="startTimer" onmouseup="startTime()">Start Timer</button>
<br>
<button type="button" id="incTime" onmouseup="incTime()">Increase Time</button>
<button type="button" id="decTime" onmouseup="decTime()">Decrease Time</button>
<form action="action_page.php">
<textarea id="textOutput" name="message" rows="10" cols="30"></textarea>
<br>
<input type="submit">
</form>
</body>
</html>
のonchangeは行いません唯一のもの
は、それが「変更」ではないので、何も移入しないでデフォルトでHEATをクリック、開始されたとき。私は 'onclick'をお勧めします。 – noob
私は同意します。 ロジックを維持するには、チェックボックスがデフォルトとして定義されているので、オプション[1]の値も同様に定義する必要があります。 あなたのソリューションは私のものより優れていますが、ラジオのonclickは本当にロジック/効率的な使用ではありません。 – technico
オプション値の更新されたコードは、ページの読み込みとして表示できます。 – technico