jQuery多个对象选择$(这个)?
我的表单上有三个我已成功创建的输入字段,并且仅限于三位数字。然后,我想在更改它们时测试它们是否小于255,如果没有,请将用户带回该字段重试。除了$(this.select())之外,下面的代码正在运行;选项如何快速将用户带回“冒犯”字段jQuery多个对象选择$(这个)?,jquery,Jquery,我的表单上有三个我已成功创建的输入字段,并且仅限于三位数字。然后,我想在更改它们时测试它们是否小于255,如果没有,请将用户带回该字段重试。除了$(this.select())之外,下面的代码正在运行;选项如何快速将用户带回“冒犯”字段 $(".colorField").change(function () { if (parseInt($(this).val(), 10) > 255) { $(this).s
$(".colorField").change(function () {
if (parseInt($(this).val(), 10) > 255) {
$(this).select();
//display error message
$("#errmsg").html("Must be less than 255").show().fadeOut(2000);
}
});
您可以使用事件将焦点设置回您的输入
另外,只需使用$(this).val().length
即可获得输入值字符数
下面是一个正在工作的JSFIDLE:HTML
评论后编辑 下面是一个新的JSFIDLE,它检查用户的输入是否为数字,以及数字是否小于或等于255。如果该值更高,它将自动将该值替换为255。
HTML
JS
//检查数字是否小于或等于255
$(“.colorField”).keyup(函数(e){
如果($(this).val()>255){
e、 预防默认值();
$(此).val(255);
}
});
//只接受数字
$(“.colorField”).keypress(函数(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
他没有试图限制在255个字符以内。他试图将输入的数值限制在255以内。谢谢,我误读了。我编辑了我的答案,并给出了一个不同于作者意图的选项。我仍然通过.focus()
活动回答了他最初的问题。谢谢大家的回答。甚至JSFIDLE也没有返回焦点,所以现在我认为这可能只是IE11的问题。再次感谢您,因为我们现在有一些解决办法。
<input type="text" class="colorField">
<div id="errmsg"></div>
$(".colorField").change(function () {
// Input value length should be less than 255 chars
if ( $(this).val().length > 255 ) {
// Set the focus back on the input
$(this).focus();
// Display error message
$("#errmsg").html("Must be less than 255").show().fadeOut(2000);
}
});
<input type="text" class="colorField" maxlength="3">
// Check if the number is less than or equal to 255
$(".colorField").keyup( function(e) {
if ( $(this).val() > 255 ) {
e.preventDefault();
$(this).val(255);
}
});
// Only accepts numbers
$(".colorField").keypress( function(e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});