我在网页中使用以下代码,根据单选按钮的选择来更改选择元素的类。
我在其中添加该类的那部分工作正常,但另一部分(在其中删除它们的那部分)不起作用。在错误控制台中我没有收到任何错误,并且当我更改代码以使删除该类的部分将另一个类放到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
最佳答案
这是行不通的,因为MooTools的“ .removeClass()”方法将类名简单地塞入了正则表达式的中间,而又没有去掉嵌入式正则表达式的元字符。
但是,您可以自己做适当的引用来解决此问题。在此示例中,它看起来像这样:
$('first_name_conjoint').removeClass("validate\\['required','nodigit'\\]");
Here是一个jsfiddle。