我有一个实时类选择器( on ),它可以处理 numberonly 类的元素,并从字段中删除非数字值。即使从element:
中删除 numberonly 类,它也不会停止工作
$(document).ready(function(){
$(".numberonly").on("input propertychange paste",function(){
$(this).val($(this).val().replace(/[^\d.-]/g, ''));
});
});
$(document).ready(function(){
$("#myfield").removeClass("numberonly");
})
input {width:300px;max-width:100%}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
This input should accept non-numeric values<br>because I removed class "numberonly":<br><br>
<input id="myfield" class="numberonly">
答案 0 :(得分:1)
这是因为事件附加在DOM元素上而不是附加在选择器上。您应该在click事件中添加if条件以检查元素是否包含类:
$(document).ready(function(){
$(".numberonly").on("input propertychange paste",function(){
if($(this).hasClass('numberonly'))
$(this).val($(this).val().replace(/[^\d.-]/g, ''));
});
});
$(document).ready(function(){
$(".numberonly").on("input propertychange paste",function(){
if($(this).hasClass('numberonly'))
$(this).val($(this).val().replace(/[^\d.-]/g, ''));
});
});
$(document).ready(function(){
$("#myfield").removeClass("numberonly");
})
input {width:300px;max-width:100%}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
This input should accept non-numeric values<br>because I removed class "numberonly":<br><br>
<input id="myfield" class="numberonly">