javascript - 用于验证的 ajax 成功函数中的两个字段的焦点冲突
问题描述
我已经使用 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 = "";
}
}
});
}
}
});
如果字段上的值无效,则字段应保持焦点,并且在输入正确的值之前不要离开字段。
解决方案
通过在 ajax 中设置 (async : false,) 问题得到解决。
推荐阅读
- python - Python SimpleHTTPRequestHandler 播放声音异步
- git - Git:如何从另一个存储库导入提交并取消压缩它们?
- redis - Redis 的 lua 脚本中的时间(以纳秒为单位)
- python - AttributeError:“WSGIRequest”对象在发出获取请求时没有属性“get”
- html - Symfony 表单和 Ajax
- c++ - 为什么我们不能更改 std::vector 的数据指针?
- d3.js - 如何将现有文本元素转换为 d3plus-text 文本框?
- angular - 如何将组件中的对象传递和接收到 NbDialog 组件 nebular ngx-admin?
- mysql - Docker 与 MySQL v5.7 连接问题
- python - AttributeError: 'NoneType' object has no attribute 'strip' 如何解决?