【问题标题】:How can I use HTML5 Validation with React?如何在 React 中使用 HTML5 验证?
【发布时间】:2015-08-31 12:09:40
【问题描述】:

这是我的 React 渲染块。我在这里使用 HTML5 验证,使用 required。 这东西应该可以正常工作。但它不起作用。谁能建议我如何使用 HTML5 验证和反应?

            <div >
                <div className="modal-dialog">
              <div class="form-group">
                        <label for="inputEmail3" class="col-sm-2 control-label">Email</label>

                        <div class="col-sm-10">

                            <input type="email" className="form-control" name="email" required
                                   placeholder="Enter a valid email address" id='email' ref="email"/>


                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">Password</label>

                        <div class="col-sm-10">
                            <input type="password" className="form-control" id='password' ref="password" required
                                   placeholder="Password must be 10 character long"/>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10">
                            <button type="button" input type="submit" className="btn btn-success"
                                    onClick={this.saveNewUser}>Register
                            </button>
                        </div>
                    </div>


                    <div>

                    </div>

                </div>
            </div>

【问题讨论】:

标签: reactjs


【解决方案1】:

我也遇到了这个问题,为我解决的问题是添加&lt;form&gt; 标签,并将处理程序从按钮输入移动到&lt;form&gt;onSubmit

<form onSubmit={this.saveNewUser}>
  <input type="email" className="form-control" name="email" required placeholder="Enter a valid email address" id='email' ref="email" />
  <button type="submit" className="btn btn-success" />
</form>

看起来提交按钮可以是&lt;button&gt;&lt;input&gt;,只要它具有type="submit" 属性即可。

【讨论】:

    【解决方案2】:

    您可能需要将所有内容都包含在一个表单中,然后才能完成 html5 验证。

    <form>
    <input type="email" className="form-control" name="email" required placeholder="Enter a valid email address" id='email' ref="email"/>
    <input type="submit" className="btn btn-success" onClick={this.saveNewUser} />
    </form>
    

    这样的事情应该会有所帮助

    【讨论】:

    • 使用 Bootstrap class="form-group" 进行表单渲染,实际上不是普通的 html 表单。可能这就是验证不起作用的原因。
    • 不幸的是,包含在form标签中并没有帮助
    【解决方案3】:

    呃,HTML5 验证不起作用的原因是该代码不是有效的 HTML5。您在表单之外有表单元素,您正在编写内联 JSX(这不是有效的 HTML)等等。

    React 是 javascript,而不是 HTML。即使您解开代码,HTML5 验证器也不会在此运行。

    【讨论】:

    • 这是一个关于修复什么的完整指令集,其他人重复我所说的内容被赞成
    • 我认为这个问题是关于输入验证而不是语义 W3C 验证(请参阅stackoverflow.com/questions/36650295/…)。
    • 自写这篇文章以来的三年里发生了很大的变化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2013-10-12
    • 2019-08-13
    • 2019-02-01
    相关资源
    最近更新 更多