противоречивый фокус на двух полях внутри функции успеха ajax, используемой для проверки - PullRequest
0 голосов
/ 28 мая 2019

Я использовал ajax для проверки размытия поля (фокус недействителен), но это противоречит проверке ajax в следующем поле

1. Попытался установить глобальную переменную и проверить ее в следующем поле проверки. 2. Хранит $ (this) в переменной, а также вызывает событие для метода bind. 3. Попытка отключения других полей, когда фокус находится на текущем поле, но не работает при определенных условиях.

$('input[name="ledgercode"]')
.bind(
'blur',
   '#ledgercode',
function(e) {
if ($('#dialog1').dialog('isOpen')) {
    e.preventDefault();
} else {
    $this = $(this);
var ledgercd = $(this).val();
if (ledgercd == "") {                            
   document.getElementById("msgbox1").innerHTML = "Code must be entered";

  $(this).focus();
  } else {
  $.ajax({
type : 'POST',
url : 'GL_Servlet?method=ledger_validation',
    dataType : 'json',
    data : {
    "json" : [ ledgercd,company ]
},
   success : function(data) {
    var ldgstat = (data.ldgstat);
    if (ldgstat == false) {
$this.focus(); //consistent focus if value invalid
    document.getElementById("msgbox1").innerHTML = "Invalid Code";
} else if (data.ldgstat == true) {
$('#txt_ldg_name').val(data.ldg_desc);
$this.closest("tr")
.find('input[name="ldg_desc"]').val(data.ldg_desc);
    document.getElementById("msgbox1").innerHTML = "";
}
    }                                            
   });
}
}
   });

Если значение в поле недопустимо, поле должно оставаться сфокусированным и не покидать поле до тех пор, пока не будет введено правильное значение.

1 Ответ

0 голосов
/ 28 мая 2019

Путем установки (async: false,) в ajax проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...