2016-05-13 107 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