jQuery 模糊和提交传播问题

标签 jquery blur

我有一个简单的新用户表单,其中包含一个“显示名称”输入字段,该字段会触发对blur() 事件的ajax 调用。这是为了验证输入的值是否已存在于数据库中。

示例:

 $("#displayname").blur(function() {
    //do something
 })

给出显示名称后,用户单击“提交”按钮继续操作,这是表单中的下一个立即操作。

示例:

$("#button").click(function() {
   $("#form").trigger("submit");
})

但是,blur() 事件始终首先触发,并且按钮单击未注册。只有第二次单击该按钮时,传播才会正确。这导致我的表格困惑。

当我点击按钮时,有什么办法可以抑制文本框的blur()事件吗?

感谢您的任何帮助 干杯!

最佳答案

如果我理解正确,问题场景是由于单击按钮导致模糊

幸运的是,事件信息被传递给处理程序,并且事件应该包含一个 target 属性。由此,您可以推断是否对模糊进行处理。使用您最喜欢的 js 调试器在 blur 事件处理程序中停止并查看 target 属性上的内容。

$("#displayname").blur(function(evt) {
   if (evt.target is not the button){ // figure this out with debugger
      //do something 

       return true; // I handled it
   }
   return false; // I didn't handle it
 })

但是,在这种情况下,您不会动态检查字段中的内容是否不在数据库中。

@eZakto 有一个很好的建议,即禁用提交按钮,直到完成对输入的 ajax 检查。

关于jQuery 模糊和提交传播问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079772/

相关文章:

swift - 应用 CiFilter 高斯模糊

jQuery 地址 : Certify that user is pressing forward button and not back button

JQuery, CSS - 创建评级系统

javascript - JS 触发器仅在每隔一个页面加载时正确触发

android - Android 中的 RenderScript 更加模糊

javascript - 从表中的输入获取数据

抖动模糊图像边缘不受影响(仅限 iOS)

javascript - 如何使用 PHP 和 MySQL 创建搜索 'filter'

javascript - 当复选框被选中时,如何使用jquery在传单上显示饼图?

ruby - 如何为 Ruby Shoes 实现模糊事件