Javascript AngularJS-首次加载页面时,如何设置ng disabled指令的真值?

Javascript AngularJS-首次加载页面时,如何设置ng disabled指令的真值?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我用AngularJS进行了验证: <form ng-app="myApp" ng-controller="validateCtrl as validate" name="myForm" action="sendEmail" novalidate> <div class="form-group"> <input type="email" name="email"

我用AngularJS进行了验证:

<form ng-app="myApp" ng-controller="validateCtrl as validate" name="myForm" action="sendEmail" novalidate>
                        <div class="form-group">
                            <input type="email" name="email" class="form-control" ng-model="validate.email" placeholder="Email" required>
                            <span style="color:yellow" ng-show="myForm.email.$dirty && myForm.email.$invalid">
                                <span ng-show="myForm.email.$error.required">Email is required.</span>
                                <span ng-show="myForm.email.$error.email">Invalid email address.</span>
                            </span>
                        </div>                            
                        <div class="form-group">
                            <input type="text" name="subject" class="form-control" ng-model="validate.subject" placeholder="Subject" required>
                            <span style="color:yellow" ng-show="myForm.subject.$dirty && myForm.subject.$invalid">
                                <span ng-show="myForm.subject.$error.required">Subject is required.</span>
                            </span>
                        </div>
                        <div class="form-group">
                            <textarea type="text" name="message" class="form-control" ng-model="validate.message" placeholder="Message..." required></textarea>
                            <span style="color:yellow" ng-show="myForm.message.$dirty && myForm.message.$invalid">
                                <span ng-show="myForm.message.$error.required">Message is required.</span>
                            </span>
                        </div>
                            <button type="submit" class="btn btn-lg btn-success"
                                   ng-disabled="myForm.email.$dirty && myForm.email.$invalid ||
                                                   myForm.subject.$dirty && myForm.subject.$invalid ||
                                                   myForm.message.$dirty && myForm.message.$invalid"></button>                           
                    </form>

电子邮件是必需的。
无效的电子邮件地址。
主题是必修的。
消息是必需的。
在电子邮件、主题和消息不正确之前,该按钮处于禁用状态。好的,很好。但这是真的,只要我已经与表单交互过

事实上,当第一次加载页面时,我还没有与表单交互,按钮就被启用了。所以,如果我点击它,我可以发送一封电子邮件!我希望当页面被加载时,按钮被禁用,当我填充字段时,按钮被启用

我该怎么做


谢谢。

您的第一个条件可以被禁用
ng=“myForm.email.$invalid
删除
”myForm.email.$dirty
您的第一个条件可以被禁用
ng=“myForm.email.$invalid
删除
myForm.email.$dirty
您的第一个条件可以被禁用
ng=“myForm.email.$invalid
。删除myForm.email.$dirty您可以禁用第一个条件
ng=“myForm.email.$invalid
。删除myForm.email.$dirty

像这样尝试

<form name="postForm"   method="POST"  novalidate>
     <div class="col-md-8">
        <div class="col-md-12">
            <div class="col-md-12"><legend>Submit New Post</legend></div>
        </div>
        <div class="col-md-12 form-group">                  
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.title.$invalid && !postForm.title.$pristine }">
                <input type="text" placeholder="Write Title" class="form-control" name="title" ng-model="post.title" required>
                <p ng-show="postForm.title.$invalid && !postForm.title.$pristine" class="text-danger">* Write Post Title</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.url.$invalid && !postForm.url.$pristine }">
                <input type="url" placeholder="Write URL" class="form-control"  name="url" ng-model="post.url" >    
                <p ng-show="postForm.url.$invalid && !postForm.url.$pristine" class="text-danger">* Write URL in http:// or https:// Format</p>
            </div>
        </div>
        <div class="col-md-12">
            <div class="col-md-12"  >
                <p class="text-danger">{{msg}}</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12"><button type="submit" class="btn btn-info" ng-disabled="postForm.$invalid" ng-click="submitForm(....)">Submit</button>
            &nbsp;&nbsp;<img src="img/loading.gif" ng-show="loading" /></div>
        </div>
    </div>
</form>

提交新职位

*写文章标题

*以http://或https://格式编写url

{{msg}

提交
像这样试试

<form name="postForm"   method="POST"  novalidate>
     <div class="col-md-8">
        <div class="col-md-12">
            <div class="col-md-12"><legend>Submit New Post</legend></div>
        </div>
        <div class="col-md-12 form-group">                  
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.title.$invalid && !postForm.title.$pristine }">
                <input type="text" placeholder="Write Title" class="form-control" name="title" ng-model="post.title" required>
                <p ng-show="postForm.title.$invalid && !postForm.title.$pristine" class="text-danger">* Write Post Title</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.url.$invalid && !postForm.url.$pristine }">
                <input type="url" placeholder="Write URL" class="form-control"  name="url" ng-model="post.url" >    
                <p ng-show="postForm.url.$invalid && !postForm.url.$pristine" class="text-danger">* Write URL in http:// or https:// Format</p>
            </div>
        </div>
        <div class="col-md-12">
            <div class="col-md-12"  >
                <p class="text-danger">{{msg}}</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12"><button type="submit" class="btn btn-info" ng-disabled="postForm.$invalid" ng-click="submitForm(....)">Submit</button>
            &nbsp;&nbsp;<img src="img/loading.gif" ng-show="loading" /></div>
        </div>
    </div>
</form>

提交新职位

*写文章标题

*以http://或https://格式编写url

{{msg}

提交
像这样试试

<form name="postForm"   method="POST"  novalidate>
     <div class="col-md-8">
        <div class="col-md-12">
            <div class="col-md-12"><legend>Submit New Post</legend></div>
        </div>
        <div class="col-md-12 form-group">                  
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.title.$invalid && !postForm.title.$pristine }">
                <input type="text" placeholder="Write Title" class="form-control" name="title" ng-model="post.title" required>
                <p ng-show="postForm.title.$invalid && !postForm.title.$pristine" class="text-danger">* Write Post Title</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.url.$invalid && !postForm.url.$pristine }">
                <input type="url" placeholder="Write URL" class="form-control"  name="url" ng-model="post.url" >    
                <p ng-show="postForm.url.$invalid && !postForm.url.$pristine" class="text-danger">* Write URL in http:// or https:// Format</p>
            </div>
        </div>
        <div class="col-md-12">
            <div class="col-md-12"  >
                <p class="text-danger">{{msg}}</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12"><button type="submit" class="btn btn-info" ng-disabled="postForm.$invalid" ng-click="submitForm(....)">Submit</button>
            &nbsp;&nbsp;<img src="img/loading.gif" ng-show="loading" /></div>
        </div>
    </div>
</form>

提交新职位

*写文章标题

*以http://或https://格式编写url

{{msg}

提交
像这样试试

<form name="postForm"   method="POST"  novalidate>
     <div class="col-md-8">
        <div class="col-md-12">
            <div class="col-md-12"><legend>Submit New Post</legend></div>
        </div>
        <div class="col-md-12 form-group">                  
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.title.$invalid && !postForm.title.$pristine }">
                <input type="text" placeholder="Write Title" class="form-control" name="title" ng-model="post.title" required>
                <p ng-show="postForm.title.$invalid && !postForm.title.$pristine" class="text-danger">* Write Post Title</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12" ng-class="{ 'has-error' : postForm.url.$invalid && !postForm.url.$pristine }">
                <input type="url" placeholder="Write URL" class="form-control"  name="url" ng-model="post.url" >    
                <p ng-show="postForm.url.$invalid && !postForm.url.$pristine" class="text-danger">* Write URL in http:// or https:// Format</p>
            </div>
        </div>
        <div class="col-md-12">
            <div class="col-md-12"  >
                <p class="text-danger">{{msg}}</p>
            </div>
        </div>
        <div class="col-md-12 form-group">
            <div class="col-md-12"><button type="submit" class="btn btn-info" ng-disabled="postForm.$invalid" ng-click="submitForm(....)">Submit</button>
            &nbsp;&nbsp;<img src="img/loading.gif" ng-show="loading" /></div>
        </div>
    </div>
</form>

提交新职位

*写文章标题

*以http://或https://格式编写url

{{msg}

提交
在“提交”按钮上,将禁用的ng修改为:

ng-disabled="myForm.$invalid || myForm.$pristine">
在这种情况下,您不必单独验证所有输入。只需测试您的表单是否无效,或者用户是否从未与表单交互

AngularJS中的表单有两种不同的状态:原始状态和脏状态。原始状态表示从未接触过您的表单。脏状态则相反。当用户将任何值设置为您的输入之一时,角度会将表单的状态从原始状态更改为脏状态


我想这是为了阅读您提交按钮上angular中的表单,将ng disabled修改为:

ng-disabled="myForm.$invalid || myForm.$pristine">
在这种情况下,您不必单独验证所有输入。只需测试您的表单是否无效,或者用户是否从未与表单交互

AngularJS中的表单有两种不同的状态:原始状态和脏状态。原始状态表示从未接触过您的表单。脏状态则相反。当用户将任何值设置为您的输入之一时,角度会将表单的状态从原始状态更改为脏状态


我想这是为了阅读您提交按钮上angular中的表单,将ng disabled修改为:

ng-disabled="myForm.$invalid || myForm.$pristine">
在这种情况下,您不必单独验证所有输入。只需测试您的表单是否无效,或者用户是否从未与表单交互

AngularJS中的表单有两种不同的状态:原始状态和脏状态。原始状态表示从未接触过您的表单。脏状态则相反。当用户将任何值设置为您的输入之一时