当我传递params时,从动态添加的html按钮调用javascript函数失败

时间:2015-10-22 18:29:07

标签: javascript jquery html ajax

首先,我添加一个带有可选项目的菜单

-b

如果我选择第二项,则会运行一些javascript代码,并将html代码以动态方式添加到页面中。正如您所看到的,html代码中有一个提交按钮,它调用另一个javascript函数,即setType();

</style>
<div id='form'><select id="mySelect" multiple="multiple" onclick="myFunction()">
  <option value="1">Please select a Form type</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select></div>

我的问题是我想将广告商值作为参数传递到此javascript函数中,将其存储在全局变量中,当三个提交按钮参数位于其变量中时,然后对另一个文件进行ajax调用。我的问题是当我用param调用javascript函数时,它不会运行。没有params的作品。我不明白这个问题。

<script type="text/javascript"> 
var foo = document.getElementById('mySelect');
var param1;
var param2;
var param3;
function myFunction(){
    if (foo)
    {
       if (foo.selectedIndex != null )
       {
           if(foo.selectedIndex>'0')
            {

                if(foo.selectedIndex == '1'){
                    //cargamos formulario 1

                    var newElement ="<div id='div1'>Advertiser ID<input type='text' name='Avertiser' value='Advertiser'><br><input type='submit' value='Submit advertiser' onClick='setType('Advertiser')';></div><div id='div2'>Offer: <input type='text' name='Offer' value='Offer'><br><input type='submit' value='Submit Offer'></div><div id='div3'>Date: <input type='text' name='Date' value='Date'><br><input type='submit' value='Submit Date'></div>";
                    var bodyElement = document.body;
                    bodyElement.innerHTML = newElement + bodyElement.innerHTML;
                    document.body.insertAdjacentHTML("" );
                //  ("Advertiser Id: <input type='text' name='AD' value='AD'><br><input type='submit' value='SubmitAD'>Offer: <input type='text' name='Offer' value='Offer'><br><input type='submit' value='SubmitOffer'>Date: <input type='text' name='Date' value='Date'><br><input type='submit' value='Date'>");                    
                }
                if(foo.selectedIndex == '2'){
                    //cargamos formulario 2

                }
                if(foo.selectedIndex == '3'){
                    //cargamos formulario 3

                }
           }
       } 
    }
}

2 个答案:

答案 0 :(得分:0)

'setType('Advertiser')'无效,请尝试'setType(\"Advertiser\")'

这是一个有效的fiddle

答案 1 :(得分:0)

检查你的&#34;&#34; :) 'setType('Advertiser')'是错误的代码,请尝试

onClick="setType('Advertiser')"

并且在HTML中总是在属性中使用"",而不是'' !!!