用于更改onchange属性的JavaScript

时间:2016-06-15 02:46:52

标签: javascript html attributes onchange

我在使用javascript设置HTML元素的onchange属性时遇到了一些问题。该脚本工作正常,除非else语句不能正常工作,即使选择更改为否。我试图调试但没有显示。有人可以解释为什么会发生这种情况吗?

<html><head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <style type="text/css">
  </style>
  <title></title>
<style type="text/css"></style></head>
<body>
    <div class="testclass">
         <select class="selectClass">
               <option value=""></option>
               <option value="y">Yes</option>
               <option value="n">No</option>
         </select>
         <input class="inputText" type="text">
    </div>

     <script type="text/javascript">

     var div = document.getElementsByClassName("testclass")[0];
     //alert(div.getElementsByClassName("selectClass")[0].value);
     var select = div.getElementsByClassName("selectClass")[0];

     select.setAttribute("onchange", "myfunction()");

     function myfunction() {
          var x = document.getElementsByClassName("selectClass")[0];
          var y = document.getElementsByClassName("inputText")[0];
          if(x.value = "y"){
               y.value = "hello";
          }
          else{
          y.value = "boo";
          }
     }
</script>

</body></html>

2 个答案:

答案 0 :(得分:1)

如果条件男人

,你缺少“=”
if(x.value == "y")

答案 1 :(得分:0)

if(x.value = "y"){
y.value = "hello";
}
else{
y.value = "boo";
} 

可以转换为

y.value = (x.value === 'y') ? 'hello' : 'boo';

单一等于分配。 ==或===用于比较。还建议使用===(强比较)来确保它们属于同一类型。