使用HTML下拉菜单调用Javascript函数

时间:2015-09-28 13:28:20

标签: javascript html drop-down-menu

我一直试图从下拉菜单中调用函数,但由于某种原因,似乎只调用了shift(CPL)。我已经验证了这些功能本身是有效的,并且已经编辑了这些功能以便于阅读。我对Javascript很新,可能已经犯了一个相当基本的错误,为此道歉并提前感谢!

HTML:

<select onchange="shift(this.value);">
  <option value="CPM">CPM</option>
  <option value="CPC">CPC</option>
  <option value="CPL">CPL/A</option>
</select>

使用Javascript:

function shift(CPM) {

}

function shift(CPC) {

}

function shift(CPL) {

}


</script>

4 个答案:

答案 0 :(得分:1)

我认为你并不真正理解函数在编程语言中是如何工作的,我建议你在尝试创建新东西之前先学习一点并遵循指南。

基本上,你不必创建3个不同的移位功能:一个就足够了:只有参数会改变。试试这段代码:

function shift (genericParameter) {
  if (genericParameter == 'CPM') {
     //CPM
  } else if (genericParameter == 'CPC') {
     //CPC
  } else if (genericParameter == 'CPL') {
    //CPL
  }
}

答案 1 :(得分:1)

如何在jquery中执行此操作:

DEMO

js code:

$(document).ready(function(){

  $('select').on('change', function() {
   shift(this.value);
  });

});

function shift(yourValue) {
    alert(yourValue) //Implement what you need here. 
}

//or maybe you prefer this:

function shift(yourValue) {
    switch(yourValue) {
        case 'CPM':
            //code block
            break;
        case 'CPC':
            //code block
            break;
        case 'CPL':
            //code block
            break;
        default:
            default code block
    }
}

希望它有所帮助。

答案 2 :(得分:1)

尝试创建一个具有select值属性的对象,在选择时执行与对象属性名对应的东西

&#13;
&#13;
var selected = {
  "CPM":"option 1",
  "CPC": function(v) {
           return v.toLowerCase()
  },
  "CPL": "option 3"
}

function shift(val) {
  var res = typeof selected[val] === "function" 
            ? selected[val](val) 
            : selected[val];
  alert(res)
}
&#13;
CPM
<select onchange="shift(this.value);">
  <option value="CPM">CPM</option>
  <option value="CPC">CPC</option>
  <option value="CPL">CPL/A</option>
</select>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

我认为你缺少的语法, 这可以帮助你......

enter code here

<select id="selectDrop" onchange="copy();">
    <option value="">Default:</option>
    <option value="one" >one</option>
    <option value="two" >two</option>
    <option value="three" >three</option>
  </select>

JavaScript: -

  function copy(){
     alert(document.getElementById("selectDrop").value);
     }