将价值从焦点传递到模糊功能的最佳方式?

Best way to pass value from focus to blur function?

我正在尝试将功能从聚焦功能传递到模糊功能。如果值相同,我不必 运行 额外验证。如果值不同,那么我将发送 ajax 调用并确保数据库中不存在该值。一种方法是使用全局变量。 JavaScript/JQuery 还有其他方法可以实现吗?这是示例:

var defaultNumber;
$(".check-number").focus(function() {
    defaultNumber = $(this).val();
}).blur(function() {
    var currNumber = $(this).val();
    
    if(currNumber !== defaultNumber){
      console.log('Send request...');
      /*
      Ajax call that checks if value already exist in database.
      */
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
  <input type="text" class="form-control check-number" name="frm_number" id="frm_number" maxlength="2" pattern="[a-zA-Z0-9]{2}" title="Number field allows alphanumeric characters only (must be two characters length) - no other special characters" placeholder="Example: 07" value="99"
    required>
</div>

您可以将旧值保存为焦点上的数据属性,并将当前值与模糊上的数据属性进行比较。

var defaultNumber;
$(".check-number").focus(function() {
    $(this).attr('data-prev', $(this).val());
}).blur(function() {
    var currNumber = $(this).val();
    
    if(currNumber !== $(this).attr('data-prev')){
      console.log('Send request...');
      /*
      Ajax call that checks if value already exist in database.
      */
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
  <input type="text" class="form-control check-number" name="frm_number" id="frm_number" maxlength="2" pattern="[a-zA-Z0-9]{2}" title="Number field allows alphanumeric characters only (must be two characters length) - no other special characters" placeholder="Example: 07" value="99"
    required>
</div>

不用存,有defaultValue

var defaultNumber;
$(".check-number").blur(function() {
    console.log(this.defaultValue!==this.value)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
  <input type="text" class="form-control check-number" name="frm_number" id="frm_number" maxlength="2" pattern="[a-zA-Z0-9]{2}" title="Number field allows alphanumeric characters only (must be two characters length) - no other special characters" placeholder="Example: 07" value="99"
    required>
</div>