2011-08-22 48 views
2

我在我的网页中使用下面的一段代码来改变选择元素的类,取决于单选按钮的选择。删除类不工作与MooTools

我添加类的部分工作正常,但另一部分(我删除它们)不起作用。在Error控制台中我没有遇到任何错误,当我更改我的代码以使删除该类的部分将另一个类放入select元素时,它可以正常工作。

<script type="text/javascript"> 
    window.addEvent('domready', function(){ 
    $('votconj').addEvent('click', function() { 
    // This works fine 
    $('first_name_conjoint').addClass("validate['required','nodigit']"); 
    $('last_name_conjoint').addClass("validate['required','nodigit']"); 
    $('jj_conjoint').addClass("validate['required']"); 
    $('mm_conjoint').addClass("validate['required']"); 
    $('aaaa_conjoint').addClass("validate['required']"); 
    $('conjoint_regime').addClass("validate['required']"); 
    new FormCheck('formulaire'); 
    }); 

    $('votconj_no').addEvent('click', function() { 
    // This doesn't work ! 
    $('first_name_conjoint').removeClass("validate['required','nodigit']"); 
    $('last_name_conjoint').removeClass("validate['required','nodigit']"); 
    $('jj_conjoint').removeClass("validate['required']"); 
    $('mm_conjoint').removeClass("validate['required']"); 
    $('aaaa_conjoint').removeClass("validate['required']"); 
    $('conjoint_regime').removeClass("validate['required']"); 
    new FormCheck('formulaire'); 
    }); 


    new FormCheck('formulaire'); 
}); 
</script> 


// The radio button 
<label>Conjoint :</label> 
    <input type="radio" name="votconj" id="votconj" value="oui">oui 
    <input type="radio" name="votconj" id="votconj_no" value="non" checked="checked">non 

回答

5

它不起作用,因为MooTools的“.removeClass()”方法简单一味地果酱类名成正则表达式,而不会打扰逃脱嵌入正则表达式元字符的中间。

但是,您可以通过自己做适当的引用来解决问题。在这个例子中,它看起来像这样:

$('first_name_conjoint').removeClass("validate\\['required','nodigit'\\]"); 

Here是一个jsfiddle。

+0

非常感谢您的回答! – Bruno