4

我正在使用这个屏蔽输入插件,我想检查该字段何时为空。以下是我尝试过的,但似乎不起作用:

HTML

<input type="text" name="phone" id="phoneid" />

乐JavaScript:

$("#phoneid").mask("999-999-9999");

此代码不起作用

            $("#phoneid").keyup(function(){
                if($("#phoneid").val().length == 0){
                    alert(111);
                }
            });
4

4 回答 4

5

您正在使用的屏蔽插件会更改input元素的值。

当元素为空时,它的值为___-___-____

在检查值的长度时,您可以简单地去掉_/字符:-

$("#phoneid").on('keyup', function() {
  if (this.value.replace(/[_-]/g, '').length === 0) {
    alert('Empty');
  }
});

或者,您还可以检查该值是否仅包含_/-字符:

$("#phoneid").on('keyup', function() {
  if (/^[_-]+$/.test(this.value)) {
    alert('Empty');
  }
});
于 2016-01-06T19:13:04.107 回答
2

我们可以通过再次用“9999999999”屏蔽它来获取未屏蔽的值,即不带破折号,然后进行如下比较:

$(document).ready(function(){
  $("#phoneid").mask("999-999-9999");
  
  $("#phoneid").keyup(function(){
     if($("#phoneid").mask("9999999999").val().length == 0){
         alert(111);
     }
     $("#phoneid").mask("999-999-9999");
   });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<script src="https://raw.githubusercontent.com/digitalBush/jquery.maskedinput/1.4.1/dist/jquery.maskedinput.min.js"></script>

<input type="text" name="phone" id="phoneid" />
<button id="test">Test</button>

于 2016-01-06T19:21:08.650 回答
1

对我来说简单的解决方案。此代码用于检查所有输入,包括屏蔽:inputs.val() == ""

.on('blur', '.form__input', function(e) {
    var inputs = $(this).find('input,textarea,select');
    setTimeout(function(){
        if (inputs.val().length == 0 || inputs.val() == ""){
            alert('Empty');
        }
    },100);
});
于 2017-03-17T07:51:32.563 回答
0

看看我的 Codepen:https ://codepen.io/ngocquydhtn/pen/YzwVMKR

    $(document).ready(function() {
var phoneMask = IMask(
  document.getElementById('phoneid'),
  {
    mask: '0000-000-000',
    lazy: false, 
    placeholderChar: '_'
  })
$("#phoneid").keyup(function(){
  if(this.value.replace(/[_-]/g, '').length==10){
    $(".btn").removeAttr('disabled');
  }
  else{
    $(".btn").attr('disabled','true');
  }
})
});
于 2020-06-24T09:02:25.807 回答