未捕获的ReferenceError:未定义检查

时间:2015-09-04 08:09:11

标签: jquery html ruby-on-rails ruby-1.8.7

请帮我解决这个问题,jquery在w3schools运行良好,但在我的rails 2应用程序中获取错误,如检查未定义 这是我的HTML代码:

Checkbox: <input class="category_select" title="3" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="6"/>

<input class="category_select" title="9" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="7"/>

<input class="category_select" title="6" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="8"/>

和Jquery如下

<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js">
  function check(val,that) {
    var total=parseInt(0,10);
    $('.category_select').each(function(){
      if($(this).is(':checked')==true)
        total=total+parseInt($(this).attr('title'),10);
    });
    if (total > val){
      $(that).removeAttr('checked');
      alert('Total is greater than val !');

    }else{
      alert('Total is less than or equal to val !');
    }
  }
</script>

上面的代码运行良好,但是当我将它插入我的rails应用程序时出现错误,我不知道我哪里出错了。 任何帮助都很有价值

4 个答案:

答案 0 :(得分:3)

在rails 2中JQUERY不支持所以我将脚本更改为Javascript,如下所示

<script type='text/javascript'>
  function check_total(e,t){ 
value=parseInt(e);
var a=parseInt(0);
$$("input.category_select").each(function(e){1==e.checked&&(a+=parseInt(e.title))}),a>value?(alert("Total is greater than Total Subcategory Hours !"),t.checked=!1):a==value&&alert("Total is equal to Total Subcategory Hours !")}
</script>

感谢您的回答。上面的脚本对我有用

答案 1 :(得分:2)

{{3}}可以包含src属性内容,但不能同时包含两者。如果两者都有,则忽略内容(内容被认为是#34;脚本文档,&#34;不是代码)。

为jQuery脚本使用另一个脚本块

<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js">
</script>
<script type="text/javascript" >
  function check(val, that) {
      var total = parseInt(0, 10);
      $('.category_select').each(function() {
          if ($(this).is(':checked') == true)
              total = total + parseInt($(this).attr('title'), 10);
      });
      if (total > val) {
          $(that).removeAttr('checked');
          alert('Total is greater than val !');

      } else {
          alert('Total is less than or equal to val !');
      }
  }

  $(function() {
      $(document).on('change', '.category_select', function() {
          check(11, this);
      });
  });
</script>

正在使用jQuery绑定事件处理程序。

答案 2 :(得分:0)

1.您的剧本没有正确加载 2.您在文档范围内没有加载脚本。

注意:您必须使用单独的脚本标记来加载外部JS文件并编写JS代码。

试试这个

&#13;
&#13;
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script type='text/javascript'>
    function check(val, that) {
      var total = parseInt(0, 10);
      $('.category_select').each(function() {
        if ($(this).is(':checked') == true)
          total = total + parseInt($(this).attr('title'), 10);
      });
      if (total > val) {
        $(that).removeAttr('checked');
        alert('Total is greater than val !');

      } else {
        alert('Total is less than or equal to val !');
      }
    }
  </script>
</head>

<body>


  Checkbox:
  <input class="category_select" title="3" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="6" />

  <input class="category_select" title="9" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="7" />

  <input class="category_select" title="6" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="8" />


</body>

</html>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

此错误即将发生,因为您正在将您的函数定义为DOM Ready事件的范围..... 而不是尝试在函数范围之外定义函数。