Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery代码对googlechrome没有影响,但在Firefox中运行良好_Jquery_Forms_Firefox_Google Chrome_Mootools - Fatal编程技术网

JQuery代码对googlechrome没有影响,但在Firefox中运行良好

JQuery代码对googlechrome没有影响,但在Firefox中运行良好,jquery,forms,firefox,google-chrome,mootools,Jquery,Forms,Firefox,Google Chrome,Mootools,我使用一段JQuery代码和一些Mootools来更改一些输入的类别,但问题是,尽管在Firefox中工作得很好,但它在Google Chrome中不起作用(没有效果) 编辑:我发现,如果我在页面上的给定元素上单击两次,就会有效地添加类 我的代码 <script type="text/javascript"> window.addEvent('domready', function(){ var myCheck = new FormCheck('formulaire');

我使用一段JQuery代码和一些Mootools来更改一些输入的类别,但问题是,尽管在Firefox中工作得很好,但它在Google Chrome中不起作用(没有效果)

编辑:我发现,如果我在页面上的给定元素上单击两次,就会有效地添加类

我的代码

<script type="text/javascript">
  window.addEvent('domready', function(){
    var myCheck = new FormCheck('formulaire');
    $('votconj').addEvent('click', function() {
     // code inside works perfectly
});

$('votconj_no').addEvent('click', function() {
    // code inside works perfectly
});

$('nb_children').addEvent('click', function() {
  var selected = $('nb_children').getSelected();


  selected.each(function(element) {
  var val = element.get('value');
  for (var counter = 1; counter <= val; counter++) {
    $('jj_enfant' + counter).addClass("validate['required']");
    myCheck.register($('jj_enfant' + counter));
    $('mm_enfant' + counter).addClass("validate['required']");
    myCheck.register($('mm_enfant' + counter));
    $('aaaa_enfant' + counter).addClass("validate['required']");
    myCheck.register($('aaaa_enfant' + counter));
    $('last_name_enfant' + counter).addClass("validate['required','nodigit']");
    myCheck.register($('last_name_enfant' + counter));
    $('first_name_enfant' + counter).addClass("validate['required','nodigit']");
    myCheck.register($('first_name_enfant' + counter));
    // Here the good value is displayed
    alert(val);
  }

  for (var counter = parseInt(val)+1; counter <= 6; counter++) {
    $('jj_enfant' + counter).removeAttribute('class');
    myCheck.dispose($('jj_enfant' + counter));
    $('mm_enfant' + counter).removeAttribute('class');
    myCheck.dispose($('mm_enfant' + counter));
    $('aaaa_enfant' + counter).removeAttribute('class');
    myCheck.dispose($('aaaa_enfant' + counter));
    $('last_name_enfant' + counter).removeAttribute('class');
    myCheck.dispose($('last_name_enfant' + counter));
    $('first_name_enfant' + counter).removeAttribute('class');
    myCheck.dispose($('first_name_enfant' + counter));
  }
  });
});

})
...
</script>

addEvent('domready',function(){
var myCheck=新的FormCheck(“formulaire”);
$('votconj').addEvent('click',function(){
//里面的代码工作得很好
});
$('votconj_no')。addEvent('click',function(){
//里面的代码工作得很好
});
$('nb_children').addEvent('click',function(){
var selected=$('nb_children')。getSelected();
已选定。每个(功能(元素){
var val=element.get('value');

对于(var counter=1;counter没有
addEvent
方法,无论是在Firefox 6还是Chrome 13中,至少在符合标准的模式下都没有。(也许您想使用
addEventListener
方法?)

如果您使用的是怪癖模式,一些浏览器支持一些非标准方法,但如果您希望跨浏览器工作,则不能使用这些方法

改用jQuery中的
ready
事件,对于不支持它的浏览器(即IE),它也会模拟
domready
事件

绑定事件处理程序的jQuery方法名为
bind
,而不是
addEvent
。您还可以使用
click
方法绑定click事件

$(document).ready(function(){
  var myCheck = new FormCheck('formulaire');
  $('votconj').click(function() {
    // ...
  });
  // ...
});

请注意,HTML中没有
votconj
元素,因此上面的选择器与任何内容都不匹配。

为什么不使用jQuery ready()来检测Dom何时就绪。 jQuery旨在以跨浏览器的方式检测此事件

替换

window.addEvent('domready', function(){
    var myCheck = new FormCheck('formulaire');
    $('votconj').addEvent('click', function() {
    // code inside works perfectly
});


下面的代码非常有用(我将事件从单击更改为模糊,并且通过只选择数组的最后一个元素,使代码更简单、更清晰)


addEvent('domready',function(){
var myCheck=新的FormCheck(“formulaire”);
$('votconj').addEvent('click',function(){
//内部代码
});
$('votconj_no')。addEvent('click',function(){
//内部代码
});
$('nb_children')。addEvent('blur',function(){
var selected=$('nb_children')。getSelected();
var element=selected.getLast();
var val=element.get('value');

对于(var counter=1;counter在Chrome中打开页面,点击f12打开开发工具…是否列出了任何js错误?感谢您的回答,但我尝试了,但它不起作用。感谢您的回答,但我尝试了,但它不起作用。AddEvent是Mootools的一部分,我更愿意坚持使用它(除非没有其他选择:-))。(毕竟它是在Firefox上工作的。)votconj是页面的一个html元素(www.mutuelle-de-sante.eu)@Bruno:我明白了,我假设它是jQuery代码,因为你用jQuery标记了这个问题。(在jQuery中,selecor
'votconj'
查找的是
标记,而不是
id=“votconj”
标记)
$(document).ready( function(){
    var myCheck = new FormCheck('formulaire');
    $('votconj').addEvent('click', function() {
        // code inside works perfectly
    });
});
<script type="text/javascript">
  window.addEvent('domready', function(){
    var myCheck = new FormCheck('formulaire');
    $('votconj').addEvent('click', function() {
      // code inside works
    });

    $('votconj_no').addEvent('click', function() {
     // code inside works
    });

    $('nb_children').addEvent('blur', function() {
       var selected = $('nb_children').getSelected();

       var element = selected.getLast();

       var val = element.get('value');
       for (var counter = 1; counter <= val; counter++) {
          $('jj_enfant' + counter).addClass("validate['required']");
          myCheck.register($('jj_enfant' + counter));
          $('mm_enfant' + counter).addClass("validate['required']");
          myCheck.register($('mm_enfant' + counter));
          $('aaaa_enfant' + counter).addClass("validate['required']");
          myCheck.register($('aaaa_enfant' + counter));
          $('last_name_enfant' + counter).addClass("validate['required','nodigit']");
          myCheck.register($('last_name_enfant' + counter));
          $('first_name_enfant' + counter).addClass("validate['required','nodigit']");
          myCheck.register($('first_name_enfant' + counter));
       }

       for (var counter = parseInt(val)+1; counter <= 6; counter++) {
          $('jj_enfant' + counter).removeAttribute('class');
          myCheck.dispose($('jj_enfant' + counter));
          $('mm_enfant' + counter).removeAttribute('class');
          myCheck.dispose($('mm_enfant' + counter));
          $('aaaa_enfant' + counter).removeAttribute('class');
          myCheck.dispose($('aaaa_enfant' + counter));
          $('last_name_enfant' + counter).removeAttribute('class');
          myCheck.dispose($('last_name_enfant' + counter));
          $('first_name_enfant' + counter).removeAttribute('class');
          myCheck.dispose($('first_name_enfant' + counter));
       }

    });

})
...
</script>