JQuery и Google Визуализация - PullRequest
       7

JQuery и Google Визуализация

0 голосов
/ 06 марта 2010

Я использую JQuery на своей странице. Часть моей страницы - это таблица визуализации Google, и попытка использовать JQuery из этой таблицы вызывает ошибку. В основном я использовал событие submit () для всех форм с классом "lala". Как видно из приведенного ниже примера, две формы за пределами таблицы визуализации Google работают нормально. Тем не менее, форма внутри таблицы не отвечает на событие ... Есть идеи? (Пример доступен на http://jsbin.com/izone/2)

HTML

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
 <div id='table_div'></div>
  <form class="lala"><input type="text" id="textv" value="Outer Text 1" size="5"><input type="submit" value="Go!"></form>
  <form class="lala"><input type="text" id="textv" value="Outer Text 2" size="5"><input type="submit" value="Go!"></form>
</body>
</html>​

Javascript

$(document).ready(function(){
      $("form.lala").submit(function() {
        alert($('#textv',this).val());
      });      
});

google.load('visualization', '1', {packages:['table']});
      google.setOnLoadCallback(drawTable);
      function drawTable() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Form');
        data.addRows(1);
        data.setCell(0, 0, '<form class="lala"><input type="text" id="textv" value="Inner Text" size="5"><input type="submit" value="Go!"></form>');

       var table = new google.visualization.Table(document.getElementById('table_div'));
       table.draw(data, {'allowHtml':true});
      }​

Спасибо! Joel

Ответы [ 2 ]

0 голосов
/ 08 мая 2011

Вместо использования $ (документ) .ready (функция) вы можете использовать google.visualization.events.addListener .Измените последние 2 строки вашего drawTable () следующим образом:

    var table = new google.visualization.Table(document.getElementById('table_div'));
    google.visualization.events.addListener(table, 'ready', function() {
        $("form.lala").submit(function() {
            alert($('#text-in-form',this).val());
        });
    });
    table.draw(data, {'allowHtml':true});

Обратите внимание, что я изменил идентификатор входного текста в таблице на 'text-in-form'.

0 голосов
/ 06 марта 2010

У вас есть два input с одинаковым идентификатором - как правило, не очень хорошая идея, особенно если вы пытаетесь получить значение input по идентификатору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...