使用if语句,javascript警报无法正常工作

时间:2018-02-24 10:00:48

标签: javascript if-statement alert

我想检查我选择的标记和输入值是否相同,但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; 
  }
}

5 个答案:

答案 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()

您可以optionsselectedIndex

获得selectedValue的价值
var e = document.getElementById("mark");
var strUser = e.options[e.selectedIndex].value;

之后比较selectedValueinput文本的值,并根据警报中的需要显示相应的消息

答案 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()