删除不使用MooTools的类

时间:2011-08-22 14:12:23

标签: javascript class mootools radio-button

我在我的网页中使用以下代码来改变选择元素的类别,具体取决于单选按钮的选择。

我添加该类的部分工作正常,但另一部分(我删除它们)不起作用。我在错误控制台中没有出现任何错误,当我更改代码以使删除类的部分将另一个类放入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

1 个答案:

答案 0 :(得分:5)

它不起作用,因为MooTools“.removeClass()”方法简单地将类名称绑定到正则表达式的中间而不必费力地逃避嵌入的正则表达式元字符。

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

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

Here是一个jsfiddle。