forms - 如何在 Material Design Lite 中根据表单内容启用/禁用提交按钮?

标签 forms button material-design-lite

我有一个登录表单的提交按钮,默认情况下处于禁用状态。我想在用户输入有效的用户名/密码时启用它。有很多使用 AngularJS、JQuery 和其他基础设施的示例,但我想知道一种使用 Material Design Lite 来实现这一点的简洁方法。我当前的代码是:

class FrontPage extends Component {
  constructor(props, context) {
    super(props, context);
    this.state = { email: '', password: '' };
  }

  handleEmailChange() {
    this.setState({email: e.target.value})
  }

  handlePasswordChange() {
    this.setState({password: e.target.value})
  }

  render() {
    return(
    <form className="frontpage" onSubmit={this.handleLogin}>
      <div className="content-grid mdl-grid">
        <div className="mdl-cell mdl-textfield mdl-js-textfield">
          <input className="mdl-textfield__input" id="email" type="email" value={this.state.email} onChange={this.handleEmailChange}/>
          <label className="mdl-textfield__label" htmlFor="email">email...</label>
          <span className="mdl-textfield__error">Input is not an email address!</span>
        </div>
        <div className="mdl-cell mdl-textfield mdl-js-textfield">
          <input className="mdl-textfield__input" id="password" type="password" pattern="[A-Z,a-z,0-9\?@\$%&\*\-_=+!  ~\.,\/\\]*" value={this.state.password} onChange={this.handlePasswordChange}/>
          <label className="mdl-textfield__label" htmlFor="password">password...</label>
          <span className="mdl-textfield__error">Input can only contain letters, numbers, and some special characters!</span>
        </div>

        <div classname="mdl-cell">
          <button className="mdl-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" type="submit" name="login" disabled>Login</button>
        </div>
      </div>
    </form>
  )
}

}

最佳答案

<button id='loginBtn' className="mdl-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" type="submit" name="login" disabled>Login</button>

<script>
    function Enable() {
        var loginBtn = document.getElementById('loginBtn');
        loginBtn.removeAttribute("disabled");
        componentHandler.upgradeElement(loginBtn);
    }

    function Disable() {
        var loginBtn = document.getElementById('loginBtn');
        loginBtn.setAttribute("disabled","");
        componentHandler.upgradeElement(loginBtn);
    }
</script>

关于forms - 如何在 Material Design Lite 中根据表单内容启用/禁用提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778569/

相关文章:

html - 没有 <form> 的 &lt;input&gt; 格式是否正确?

css - 如何在 CSS 中实现这种按钮?

javascript - 处理 mdl 表复选框

javascript - mdl-menu material-design-lite 中的 mdl-textfield

ruby-on-rails - 简单的输入结束错误 - Rails 表单

javascript - 使用 jquery 按名称属性禁用单选按钮

HTML 表单对齐输入框

android - 将按钮文本设置为问号

python - 如何在 Tkinter 中将形状变成按钮

html - <tr> 不取后代 <span> 的高度