Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查表单输入字段是否未更改_Javascript_Angularjs_Forms - Fatal编程技术网

Javascript 检查表单输入字段是否未更改

Javascript 检查表单输入字段是否未更改,javascript,angularjs,forms,Javascript,Angularjs,Forms,我有一个表单,我们称之为myForm,类似于此: <form name="myForm" class="vertical grid-block shrink" ng-init="initSearch()" ng-submit="doSearch(myForm.$valid)" novalidate> 和三个输入字段:一个包含详细信息,第二个是开始日期,第三个是结束日期 字段如下所示: <input id="details" type="text" ng-model="my

我有一个表单,我们称之为
myForm
,类似于此:

<form name="myForm" class="vertical grid-block shrink" ng-init="initSearch()" ng-submit="doSearch(myForm.$valid)" novalidate>

和三个输入字段:一个包含详细信息,第二个是开始日期,第三个是结束日期

字段如下所示:

<input id="details" type="text" ng-model="myObject.details" placeholder="DETAILS_PLACEHOLDER">


<input id="from" class="uppercase" type="text" name="from" placeholder="{{datePlaceHolder}}" ng-model="myObject.from" required/>

<input id="until" class="uppercase" type="text" name="until" placeholder="{{datePlaceHolder}}" ng-model="myObject.until"/>

我想显示一个基于表单字段的按钮。如果表单字段未更改,则应隐藏该按钮

我尝试使用
$dirty
,但问题是
$dirty
仍然
true
,即使用户键入详细信息然后删除文本。 有人能解决这个问题吗

而且,即使我从另一个可能有另一个控制器的页面返回表单,该解决方案也必须有效


感谢您的帮助。谢谢

这应该可以解决这个问题。它可以查到$pristine(未动过)

<button ng-show="myForm.$pristine"></button>

这应该可以解决这个问题。它可以查到$pristine(未动过)

<button ng-show="myForm.$pristine"></button>

看看下面的示例,基本上您需要
$viewValue
来显示/隐藏提交按钮

var-app=angular.module('app',[]);
应用程序控制器('ctrl',函数($scope){
$scope.myObject={};
$scope.datePlaceHolder='from date';
$scope.dateplaceholder 2='截止日期';
$scope.doSearch=函数(){
警报(“提交”);
}
$scope.initSearch=function(){
log('init search called');
}
});

需要填写从和直到提交的值

提交
看看下面的示例,基本上您需要
$viewValue
来显示/隐藏提交按钮

var-app=angular.module('app',[]);
应用程序控制器('ctrl',函数($scope){
$scope.myObject={};
$scope.datePlaceHolder='from date';
$scope.dateplaceholder 2='截止日期';
$scope.doSearch=函数(){
警报(“提交”);
}
$scope.initSearch=function(){
log('init search called');
}
});

需要填写从和直到提交的值

提交
与$dirty相同的问题$pristine会保留false值,即使我键入一些内容,然后删除文本。与$dirty的问题相同$pristine保留false值,即使我键入了一些内容,然后删除了文本。