【问题标题】:Javascript onblur() wont work when directly click on button直接单击按钮时,Javascript onblur() 将不起作用
【发布时间】:2014-03-25 13:34:58
【问题描述】:

我有一个 javascript 文本框,它有 onblur(),它会调用一个验证函数,所以假设当我从文本框聚焦时,它会触发 onblur() 并验证用户输入的数据,然后我点击在“提交”按钮上,它将处理数据。

有一个错误,当我在文本框中输入内容时,我会立即单击提交按钮(首先没有从文本框中聚焦),所以实际上它不会触发 onblur() 和 WONT 验证文本框中的数据,即使数据错误也会处理数据,因为调用 onblur() 失败。

在这种情况下,如果我不想在按钮中进行任何验证(onclick 事件),如何解决此错误。试过onchange(),也失败了。

【问题讨论】:

    标签: javascript onblur


    【解决方案1】:

    由于您没有添加代码,我只提供建议。 (请添加示例小提琴以进行更多调查)

    您可以使用按钮的焦点事件来验证或聚焦到文本区域之外。

    $("button").focus(function() { // validation  
    } );
    
    $( "textarea" ).focusout(function() { // validation   
    });
    

    虽然是提交表单的最佳方法。

    【讨论】:

      【解决方案2】:

      onblur() 函数将调用,如果您只访问某些文本框。否则在你提交之前它不会调用。

      所以我建议你写一个验证方法,也叫它 onsumbit()。

      【讨论】:

      • 嗨,对不起,我对 javascript 很陌生,我完全不明白你的解释“onblur() 函数将调用,如果你只访问某些文本框。否则在你提交之前它不会调用。”仅访问某些文本框是什么意思?据我了解,点击按钮时触发onclick,提交表单时触发onsumbit。
      • onblur 是一个事件,当你离开文本框时会调用它。我的意思是关注文本框。如果您没有尝试编辑文本框,则说明您没有集中注意力。所以不会触发 onblur 事件。所以你的函数不会调用。如果您添加代码,它将有助于解释。
      • w3schools.com/jsref/event_onblur.asp 如果你看不懂这个链接。 google吧,你可以找到更多好的解释。这将有助于你理解。
      猜你喜欢
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多