2016-05-13 196 views
-3

对不起,请让我修改我的问题:调用JavaScript函数使用的 'onClick'

我定义的复选框:

echo "<td>" 
    echo "<input type = \"checkbox\" name=\"name\" value=\"$name\">"; 
    echo "<input type = \"hidden\" name=\"user\" value=\"$user\">"; 
echo "</td>" 

和一个提交按钮:

echo "<input type=\"button\" value=\"Submit\" id=\"submit\" onclick=\"get_checked(form)\">"; 

这里是我的javascript功能:

jQuery.noConflict(); 
     (function($){ 
      function get_checked(form){ 
       var formData = {}; 
       var match = false; 

       var testname_checked = new Array();     
       $(':checkbox:checked').each(function(i){ 
        testname_checked[i] = $(this).val(); 
       }); 
       if (confirm("You are requesting dumps for the following tests: \\n" + testname_checked.join('\\n') + "\\nPress \'Ok\' to confirm or \'Cancel\' to exit")){ 
        $(form).find("input[name]").each(function (index, node){ 
         formData[node.name] = node.value; 
         if (node.name == "user"){ 
          var j = 0; 
          while (testname_checked[j]){ 
           if (formData['testname'] == testname_checked[j]){ 
            //alert (formData['testname'] + formData['seed'] + formData['project']); 
            $.post("http://ltipc197:4567",{testname: formData['testname'], seed: formData['seed'], project: formData['project'], changelist: formData['changelist'], suite: formData['suite'], user: formData['user'] }) 
           } 
           j = j + 1; 
          } 
         } 
        }).get(); 
       } 

      } 
     })(jQuery); 

正如你所看到的,我的函数被封装在'noConflict'函数中。但是,当我按下提交按钮时,出现以下错误:未捕获的ReferenceError:get_checked未定义。这只发生在我将这个函数包装在noConflict标签中时。我无法删除此标记,因为我在脚本的其他部分使用了mootools。我在网上搜索并尝试以下操作:

var noConflict = (function($){...} 

然后,我改变了我的按钮是:

echo "<input type=\"button\" value=\"Submit\" id=\"submit\" onclick=\"noConflict.get_checked(form)\">" 

但没有奏效...

任何想法?

+1

'$(...)。addEvents' *不是[jQuery](http://api.jquery.com/)的一部分。 – zzzzBov

回答

1

$(...).addEventsMooTools feature。我怀疑你正在加载这两个库,这是一个问题,因为MooTools和jQuery声明$全局变量。

要将jQuery绑定到不同的全局域,并返回0123o回到MooTools,请使用$.noConflict

var jQ = $.noConflict(); 
jQ(':checkbox:checked').each(...); // jQuery feature 
$(...).addEvents(); // MooTools feature