JQuery代码对googlechrome没有影响,但在Firefox中运行良好
我使用一段JQuery代码和一些Mootools来更改一些输入的类别,但问题是,尽管在Firefox中工作得很好,但它在Google Chrome中不起作用(没有效果) 编辑:我发现,如果我在页面上的给定元素上单击两次,就会有效地添加类 我的代码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');
<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>