我正在研究HTML和Javascript。
我有一个标签,你可以在下面看到
<label for="optGender">Gender: </label>
<input id="optGender" type="radio" name="optGender" value="F" onclick="changeGender(this.value)">
Female
<br>
<input id="optGender" type="radio" name="optGender" value="M" onclick="changeGender(this.value)">
Male
<br>
Where do you want to live?
<br>
<select id="txtCity" name="lstCity" size="5">
<option value="06">Ankara</option>
<option value="34">Istanbul</option>
<option value="35">Izmir</option>
<option value="27">Gaziantep</option>
</select>
<br>
在我的javascript文件中,我有这个功能来检查它是否已经检查
function changeGender(whichOne){
var gender = document.forms["ProcessInfo"]["optGender"].value;
var optGender = document.getElementById("optGender");
var txtCity = document.getElementById("txtCity");
if ( !document.getElementById('optGender').checked )
{
errMessage += "Please select your gender.\n";
document.getElementById('optGender').checked = false;
}
//if ( gender == "M" ) { alert("lol");}
}
当我选择“女性”按钮时,它有效,不会出错。但是当我选择男性时,它会给我一个错误,我没有选择任何选项。这有什么问题?
编辑*我真正想要做的是,如果我选择F,列表将包含以I开头的城市,因为M将成为G.我可以轻松处理这部分,但我最简单部分。
答案 0 :(得分:3)
两个输入都有相同的ID。这不会奏效...... Document.getelementbyid返回它找到你提供的id的第一个实例,这是男性输入。我想你在这里想要的是选择而不是输入......
给我一点时间,我会为你修改你的代码。
<label for="optGender">Gender: </label>
<input id="Female" type="radio" name="optGender" value="F" onclick="changeGender(this)">
Female
<br>
<input id="Male" type="radio" name="optGender" value="M" onclick="changeGender(this)">
Male
<br>
Where do you want to live?
<br>
<select id="txtCity" name="lstCity" size="5">
<option value="06">Ankara</option>
<option value="34">Istanbul</option>
<option value="35">Izmir</option>
<option value="27">Gaziantep</option>
</select>
<br>
function changeGender(whichOne){
var gender = whichOne.value;
if ( gender == "M" ) { alert("lol");}
if ( gender == "F" ) { alert("wat");}
}
答案 1 :(得分:0)
您需要更改收音机的ID并保留名称。它会工作
答案 2 :(得分:0)
id
中不能有2个具有相同HTML
的元素。您有2个具有相同ID的元素,即optGender
。