在表单提交上验证文本框

Posted

技术标签:

【中文标题】在表单提交上验证文本框【英文标题】:Validating TextBox on form submit 【发布时间】:2018-11-17 03:27:50 【问题描述】:

我有文本框,我想在使用 jquery 提交表单时用 - 替换文本框的值 %。但不知道我该怎么做。

这是我的 html

<form [formGroup]="form" id="form" (submit)="addDetails();form.reset()" class="form-style-9" ngNativeValidate>
    <div class="form-group">
        <div class="col-sm-4">
            <label for="username">User Name</label></div>
            <div class="col-sm-8"><input type="text" id="username" class="form-control"
                placeholder="Please Enter User Name" formControlName="username" required="true">

            </div>
            <input type="hidden" id="usernameX" name="username" />
        </div>
        <input type="submit">
    </form>

JS

var doReplace = function(string)
    return string.replace(/%/g, "-");

var $usernameX = $('#usernameX');
$("#form").on("submit", function(e) 
$usernameX.val(doReplace($('#username').val()));
e.preventDefault();
);

【问题讨论】:

为什么这个问题被标记为 Angular? Angular 和 jQuery 是天壤之别! 因为我同时使用了 angular 和 jquery。如果我没记错的话,我们可以一起使用。 虽然可以同时使用 jQuery 和 Angular,但你真的不应该。 ^^^ 这个。你真的不应该在 Angular 中使用 jQuery。 Angular 保持对 DOM 的控制,一旦你引入 jQuery,你就在 Angular 上下文之外,事情可能会变得非常错误:) 【参考方案1】:

你可以这样做。但是你不需要 jQuery 来做这个

<form [formGroup]="form" id="form" (submit)="onSubmit()" class="form-style-9" ngNativeValidate>
  <div class="form-group">
    <div class="col-sm-4">
      <label for="username">User Name</label>
    </div>
    <div class="col-sm-8">
      <input type="text" id="username" class="form-control" placeholder="Please Enter User Name" formControlName="username"
        required="true">

    </div>
    <input type="hidden" id="usernameX" name="username" />
  </div>
  <input type="submit">
</form>

并在component.ts中添加onSubmit()

public onSubmit(): void 
 this.addDetails();
 const value = this.form.get('username').value.replace(new RegExp('%'), '-');'
 this.form.reset();

【讨论】:

它没有替代。 调试时显示已替换,但提交时未替换。 替换值后放一个控制台日志看看。您如何从要提交的表单中获取值? 它只替换 1% 如果我有 %% 会怎样 为此使用正则表达式。您可以在here 中测试您的正则表达式【参考方案2】:
    var myStr = 'replace_underscore_by_minus';
    var newStr = myStr.replace(/_/g, "-");

【讨论】:

以上是关于在表单提交上验证文本框的主要内容,如果未能解决你的问题,请参考以下文章

巧用jquery实现提交(submit)表单时候验证文本框是否为空

带有表单验证的表单提交预览 (PHP)

7.2 Javascript:表单验证-提交表单

表单初级验证的方法

如何使用javascript验证动态生成的输入框值

JavaScript