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

$(...).addEvents является MooTools feature. Я подозреваю, что вы загружаете обе библиотеки, что является проблемой, поскольку и MooTools, и jQuery утверждают глобальную переменную $.

Чтобы связать jQuery с другим глобальным и вернуть $ обратно в MooTools, используйте $.noConflict.

var jQ = $.noConflict(); 
jQ(':checkbox:checked').each(...); // jQuery feature 
$(...).addEvents(); // MooTools feature 
Смежные вопросы