我想检查我选择的标记和输入值是否相同,但js中的警报即使它们相同也能正常工作。这是我的代码!感谢您的支持!
HTML
<select id="mark">
<option value="o">o</option>
<option value="x">x</option>
</select>
<input type="text" name="block%s" id="block" onchange="check()">
JS
var mark = document.getElementById("mark").value;
var block = document.getElementById("block").value;
function check() {
if (block != mark) {
alert ('Your mark is wrong');
return false;
} else {
return true;
}
}
答案 0 :(得分:1)
您需要将这些变量放在函数中,否则值将在开头确定,之后不会更改。
function check(){
var mark=document.getElementById("mark").value;
var block=document.getElementById("block").value;
if( block != mark) {
alert ('Your mark is wrong');
return false;
}
else{
return true;
}
}
<select id="mark">
<option value="o">o</option>
<option value="x">x</option>
</select>
<input type="text" name="block%s" id="block" onchange="check()">
答案 1 :(得分:1)
您的JavaScript代码应如下所示:(在函数后声明的块var
)
<script>
var mark=document.getElementById("mark").value;
function check() {
var block = document.getElementById("block").value;
console.log(mark + '-' + block)
if (block != mark) {
alert ('Your mark is wrong');
return false;
} else {
return true;
}
}
</script>
答案 2 :(得分:1)
首先创建函数check()
。
您可以options
或selectedIndex
selectedValue
的价值
var e = document.getElementById("mark");
var strUser = e.options[e.selectedIndex].value;
之后比较selectedValue
和input
文本的值,并根据警报中的需要显示相应的消息
答案 3 :(得分:0)
功能检查应包括所有变量。在这里,试试这个:
function check(){
var mark=document.getElementById("mark").value;
var block=document.getElementById("block").value;
if(block != mark) {
alert ('Your mark is wrong');
return false;
}
else{
alert ('Your mark is right');
return true;
}
}
答案 4 :(得分:0)
变量应该在函数内部
请尝试以下操作:
<强> HTML 强>
<input type="text" name="block%s" id="block" onchange="check(this)">
<强> Javscript 强>
function check(inputBox) {
var markBox = document.getElementById("mark");
var mark = markBox[markBox.selectedIndex].value;
var block = inputBox.value;
if (block != mark) {
alert ('Your mark is wrong');
return false;
} else {
return true;
}
}
当用户离开输入框时,您还可以使用输入框的
onblur
来呼叫check()
。