W3验证器 - &gt;在html体内使用<script type =“text / javascript”> </script>

时间:2015-04-07 15:27:00

标签: javascript php jquery html validation

我尝试验证我的网页,但有一个错误需要修复。

我在我的代码中使用Google图表。要填充图表,我需要在下面的代码中显示的JavaScript中填写数据。

<script type="text/javascript">

      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);



      function drawChart() {




        var data = google.visualization.arrayToDataTable([  <?php echo $data; ?>   ]);



        var data2 = google.visualization.arrayToDataTable([ <?php echo $datagoing; ?>   ]);


        var options = {
          backgroundColor: 'transparent',
            legend: 'none',
            height: '100px',
            width: '100px',
               chartArea: { height :"95%", width:"95%" },

        };

        var options2 = {
          backgroundColor: 'transparent',
            legend: 'none',
            height: '100px',
            width: '100px',
               chartArea: { height :"95%", width:"95%" },
        };


        var chart = new google.visualization.PieChart(document.getElementById('piechart<?php echo $loop ?>'));
        chart.draw(data, options);

        var chart2 = new google.visualization.PieChart(document.getElementById('piechartgoing<?php echo $loop ?>'));
        chart2.draw(data2, options2);

      }
    </script>

这是在一个循环中,所以通过查看我的页面来源http://mr-tipster.com/pages/newcard.php?venue=Warwick&time=3:05

可以看到多次生成代码

我的问题是如何在保持页面html验证的同时执行此操作:http://validator.w3.org/check?uri=http%3A%2F%2Fmr-tipster.com%2Fpages%2Fnewcard.php%3Fvenue%3DWarwick%26time%3D2%3A30&charset=%28detect+automatically%29&doctype=Inline&group=0

1 个答案:

答案 0 :(得分:2)

问题是您将脚本直接放在tr标签和that is not valid内的<table>之间。你现在拥有什么:

<table>
    <tr>
        <td>...</td>
        ...
    </tr>
    <script type="text/javascript">...</script>
    ...
</table>

要快速解决问题,请将脚本移到行的最后<td>内(<script>flow element allowed in the table cell)。效果将是相同的,它将毫无问题地验证。像这样:

<table>
    <tr>
        <td>...</td>
        ...
        <td>
            ...
            <script type="text/javascript">...</script>
        </td>
    </tr>
    ...
</table>

但如果你想以更清洁,更优雅的方式解决问题,你应该像Rory在评论中所建议的那样:创建一个函数,简单地调用它来改变参数,而不是拥有几乎相同代码的巨大块