标签: onblur

按钮单击事件由于文本框onblur事件中的警告框而丢失

我创建了一个简单的Web表单,其中包含一个文本框和一个按钮.我已经捕获了文本框的onblur事件.

<html xmlns="http://www.w3.org/1999/xhtml" >  
<head runat="server">  
    <title>Untitled Page</title>  
    <script language="javascript" type="text/javascript">  
    function onTextBoxBlur()  
    {  
        alert("On blur");  
        return true;  
    }  
    </script>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <asp:TextBox ID="TextBox1" runat="server" onblur="onTextBoxBlur();"></asp:TextBox>  
    <asp:Button ID="Button1" runat="server" Text="Button" />  
</form>  
</body>  
</html>
Run Code Online (Sandbox Code Playgroud)

当我在文本框中输入一些值并单击按钮时,会出现文本框的onblur事件,但按钮的onclick却没有.并且,当我从js函数中删除警报框时,它工作正常.按钮点击事件的一些方法将丢失.我认为这是由于警报框.知道为什么会这样吗?

javascript textbox onchange button onblur

6
推荐指数
1
解决办法
5873
查看次数

onblur事件不适用于谷歌浏览器

我正在尝试使用onblur事件关闭窗口.它在IE,Firefox和Safari中运行良好,但事件不会在chrome中触发.是铬的错误或我的错误

google-chrome onblur

5
推荐指数
1
解决办法
2万
查看次数

当搜索字段失去焦点时,使搜索菜单消失,但仍允许用户单击链接

在我的网站上,我有一个搜索框(文本输入字段).当用户点击它并开始键入文本时,会出现一个链接菜单.菜单通过JQuery显示 - 以下命令使菜单显示:

".focus(function() {
    $("#instant_search_wrapper").show();
}); "
Run Code Online (Sandbox Code Playgroud)

当用户点击搜索框时,我希望菜单消失.

最简单的方法是使用以下命令:

".blur(function() {
    $("#instant_search_wrapper").hide();
});" 
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做,那么当用户点击菜单中的链接时,文本输入字段会失去焦点,因此菜单会在用户进入选择页面之前消失.当搜索字段失去焦点时,我怎样才能使菜单消失(但如果用户在搜索字段失去焦点之前点击链接,他/她仍然可以被带到链接)?

javascript jquery hide onblur

5
推荐指数
1
解决办法
792
查看次数

在模糊时隐藏自动完成 AJAX 控件的建议列表

我正在实现一个 AJAX“自动建议”框:用户在输入文本字段中键入一个字符串,显示一个带有表格的隐藏 div,然后他/她可以单击一行或使用向上/向下箭头滚动列表; 同时,焦点仍然保持在输入文本字段上。

一切正常,但有一个细节我无法实现,这在概念上似乎很困难甚至不可能。当用户将光标移动到另一个输入字段时,我想隐藏建议列表,或者只是点击窗口的空白点。这本身并不难实现,我只是添加了一个回调OnBlur;但这打破了OnClick项目的选择,因为 onblur 事件在点击之前触发,然后 DIV 在 onclick 事件被触发之前消失......

我想过在整个窗口上实现一个onclick回调,然后检查点击发生的地方,但这似乎有点太尴尬和扭曲了。有人有更好的主意吗?谢谢!

ajax autocomplete onblur

5
推荐指数
1
解决办法
2274
查看次数

JavaScript 在表格行失去焦点时运行代码

我有一个 html 表,当一行失去焦点时,我试图使用 jJavascript 来触发一个事件,但“模糊”事件似乎不正确,因为没有触发任何事件:

(我正在做的事情的快速示例)

<tr class="tableRow">
    <td class="tg-amwm" contentEditable="true">hours</td>
    <td class="tg-amwm" contentEditable="true">minutes</td>
    <td class="tg-amwm" contentEditable="true">hours</td>
    <td class="tg-amwm" contentEditable="true">minutes</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下内容:

var rows = document.getElementsByClassName("tableRow");

for(i = 0; i < rows.length; i++) {
    rows[i].addEventListener("blur", function(){console.log("row left!");});
}
Run Code Online (Sandbox Code Playgroud)

但控制台中没有任何内容 - 我是否误解了事件/DOM 结构?

javascript onblur dom-events

5
推荐指数
1
解决办法
5268
查看次数

onBlur 重置反应选择中的值

我的反应选择有问题。当我在可搜索输入中输入一些文本并单击外部时,我的文本消失了。我尝试过onBlur={() => input.onBlur({value: input.value})},它工作正常,但我在控制台中出现了丑陋的错误。就像是Uncaught ReferenceError: input is not defined

onChangeValue = (newValue) => {
  const inputValue = newValue.replace(/\W/g, '');
  this.setState({ inputValue });
  this.props.nameFilter(inputValue);
};

handleCloseMenu = () => {
  this.setState(({
    menuIsOpen: false,
  }))
  input.onBlur(input.value)
};

handleOpenMenu = () => {
  this.setState(({
    menuIsOpen: true,
  }))
  input.onBlur(input.value)
};

render() {
  return (
   <div className="container">
    <AsyncSelect 
      className="search-input"
      onFocus={this.handleOpenMenu}
      onBlur={this.handleCloseMenu}
      menuIsOpen={this.state.menuIsOpen}
      loadOptions={this.loadOptions}
      defaultOptions
      onInputChange={this.onChangeValue}
      placeholder="Search..."
    />
  </div>    
  )};
};
Run Code Online (Sandbox Code Playgroud)

有没有不使用 redux-form 的解决方法?

与这里相同的问题,但我没有使用 redux-form 并且这些解决方案不起作用。

onblur reactjs react-select redux

5
推荐指数
1
解决办法
1万
查看次数

ReactJS:在模糊时保存输入值,而不是在每次击键时保存输入值

我创建了一个 React View,比如说MyView,它有 2 个文本输入,其初始值将由从数据库读取的父级传递。

我还希望将更改后的值保存回数据库。因此,视图也传递了一个回调函数。

考虑到数据库保存操作很繁重,您不应该经常执行它。因此,我决定监听onBlur事件,而不是每次击键时调用的onChange输入框上的事件。onChange

第一种方法:

class MyView extends React.Component {
    constructor(props) {
        super(props);
    }

    render() {
        return (
            <div>
              <input type="url" value={this.props.values.A}
                   onBlur={(evt)=>{this.props.saveValue('A', evt.target.value)}} />
              <input type="url" value={this.props.values.B}
                   onBlur={(evt)=>{this.props.saveValue('B', evt.target.value)}} />         

              <button type="button" onClick={this.props.resetValues}>Reset</button>
            </div>
        );
     }
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为React强制受控输入(带有value属性)始终伴随onChange侦听器。

第二种方法:

因此,我尝试将这些输入设为uncontrolled. 也就是说,value使用 代替属性defaultValue

<input type="url" defaultValue={this.props.values.A}
       onBlur={(evt)=>{this.props.saveValue('A', evt.target.value)}} />
Run Code Online (Sandbox Code Playgroud)

但这也不起作用,因为单击重置/清除按钮时,尽管视图已重新渲染,但defaultValue创建视图后不会更新。

第三种方法:

所以,我最终添加了一个onChange侦听器,但作为无操作。

<input …
Run Code Online (Sandbox Code Playgroud)

javascript onblur reactjs react-props getderivedstatefromprops

5
推荐指数
1
解决办法
9621
查看次数

角 7 | HostListener 模糊条件停止所有其他事件回调

我有一个要求,我们希望用户解决输入字段错误,并且在完成之前不允许用户在屏幕上进行任何其他操作。

同样,我在输入字段和 onBlur 上实现了 HostListener,如果验证方案失败,我会将焦点设置回输入字段。

并且,我正在执行 e.preventDefault() 和 e.stopPropagtion() 来停止要在页面上执行的所有其他事件回调(在设置focus后,blur将是要执行的第一个事件)。

但不知何故,在任何外部事件上,blur确实会被执行,但不限制其他事件的执行。那些也正在执行,否则我将无法实现所需的功能。

import { Directive, HostListener, Input } from '@angular/core';

@Directive({
  selector: '[appNumberFormat]'
})
export class NumberFormatDirective {

  constructor() { }

  @HostListener('blur', ['$event']) blur(evt) {
    evt.preventDefault();
    console.log('field focus...');
    evt.target.focus();
    return false;
    // if (evt.target.value.trim() === '') {
    //     this.formControl.control.setValue(this.defaultValue);
    // }
  }
}
Run Code Online (Sandbox Code Playgroud)

我在 stackBlitz 中复制了相同的场景。请看一看。

https://stackblitz.com/edit/angular-54ermg

javascript onfocus onblur angular

5
推荐指数
1
解决办法
5482
查看次数

文档可见性变化与窗口模糊/焦点,有什么区别,何时使用哪个?

在 ECMAscript (=Javascript) 中有两种方法可以检查用户是否离开您的页面。您可以在 上侦听“ visibilitychange”事件,document也可以在 上侦听“ blur”和“ focus”事件window。它们之间有区别吗?

navigation onfocus onblur dom-events visibilitychange

5
推荐指数
1
解决办法
1661
查看次数

React-Native:触摸 TextInput 一侧时,“onBlur”不会被触发

   <TextInput
        ref={ ref => this.mobileNumberRef = ref}
        keyboardType='phone-pad'
        returnKeyType='done'
        onBlur={() => Keyboard.dismiss()}
   />
Run Code Online (Sandbox Code Playgroud)

当触摸到该区域之外时,我想关闭键盘TextInput。但并onBlur()没有被解雇。

有人可以让我知道如何实现这一目标吗?谢谢你!

onblur react-native

5
推荐指数
1
解决办法
7622
查看次数