Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 - Fatal编程技术网

Javascript “禁用”;“保存”;按钮,直到至少一个输入字段已更改

Javascript “禁用”;“保存”;按钮,直到至少一个输入字段已更改,javascript,angularjs,Javascript,Angularjs,一个页面中大约有20个输入字段、一个保存和一个注册按钮。如何仅在至少一个字段中发生更改时才启用“保存”按钮?假设您的HTML如下所示: <input> <input> <input> <button class=save disabled>Save</button> var inputs = document.getElementsByTagName("input"); var enableSave = function() {

一个页面中大约有20个输入字段、一个保存和一个注册按钮。如何仅在至少一个字段中发生更改时才启用“保存”按钮?

假设您的HTML如下所示:

<input>
<input>
<input>
<button class=save disabled>Save</button>
var inputs = document.getElementsByTagName("input");
var enableSave = function() {
  document.querySelector("button.save").disabled = false;
  for (var i = 0; i < inputs.length; i++) {
    inputs[i].removeEventListener("input", enableSave);
  }
};

for (var i = 0; i < inputs.length; i++) {
  inputs[i].addEventListener("input", enableSave);
}

拯救
您可以这样做:

<input>
<input>
<input>
<button class=save disabled>Save</button>
var inputs = document.getElementsByTagName("input");
var enableSave = function() {
  document.querySelector("button.save").disabled = false;
  for (var i = 0; i < inputs.length; i++) {
    inputs[i].removeEventListener("input", enableSave);
  }
};

for (var i = 0; i < inputs.length; i++) {
  inputs[i].addEventListener("input", enableSave);
}
var inputs=document.getElementsByTagName(“输入”);
var enableSave=函数(){
document.querySelector(“button.save”).disabled=false;
对于(变量i=0;i
假设您的HTML如下所示:

<input>
<input>
<input>
<button class=save disabled>Save</button>
var inputs = document.getElementsByTagName("input");
var enableSave = function() {
  document.querySelector("button.save").disabled = false;
  for (var i = 0; i < inputs.length; i++) {
    inputs[i].removeEventListener("input", enableSave);
  }
};

for (var i = 0; i < inputs.length; i++) {
  inputs[i].addEventListener("input", enableSave);
}

拯救
您可以这样做:

<input>
<input>
<input>
<button class=save disabled>Save</button>
var inputs = document.getElementsByTagName("input");
var enableSave = function() {
  document.querySelector("button.save").disabled = false;
  for (var i = 0; i < inputs.length; i++) {
    inputs[i].removeEventListener("input", enableSave);
  }
};

for (var i = 0; i < inputs.length; i++) {
  inputs[i].addEventListener("input", enableSave);
}
var inputs=document.getElementsByTagName(“输入”);
var enableSave=函数(){
document.querySelector(“button.save”).disabled=false;
对于(变量i=0;i
如果不需要比较值,只需在所有文本框中添加一个键事件的事件处理程序,并在触发任何文本框中的事件后启用“保存”按钮即可


如果您需要更“复杂”的功能,以便仅在某些数据确实发生更改时才允许保存(例如,您可以将“aaa”更改为“aa”-但随后意识到您希望将其恢复为“aaa”),则您需要维护原始数据并将其与任何新更改进行比较,然后确定是启用“保存”按钮还是将其禁用。例如,在这种情况下,您可以添加某种
“原始数据”
属性添加到您的输入文本框中,当生成/加载页面时,该文本框将保存原始值,并且在每个按键更改事件上运行比较器。

如果您不需要比较值,您只需将按键事件上的事件处理程序附加到所有文本框中,并在触发任何文本框中的事件后启用“保存”按钮即可


如果您需要更“复杂”的功能,以便仅在某些数据确实发生更改时才允许保存(例如,您可以将“aaa”更改为“aa”-但随后意识到您希望将其恢复为“aaa”),则您需要维护原始数据并将其与任何新更改进行比较,然后确定是启用“保存”按钮还是将其禁用。例如,在这种情况下,您可以向输入文本框添加某种类型的
“原始数据”
属性,当生成/加载页面时,这些属性将保存原始值,并且在每个键更改事件上运行比较器。

禁用表单按钮可以使用ng disabled完成

<form name="myForm">
Name : 
<input type="text" name="Name" required><br>
Age:
<input type="number" name="Age" required><br>
<input type="submit" value="Save" ng-disabled="myForm.$error.required">

姓名:

年龄:


此处,仅当满足表单中的必填字段时,才启用“保存”按钮

禁用表单按钮可以使用ng disabled完成

<form name="myForm">
Name : 
<input type="text" name="Name" required><br>
Age:
<input type="number" name="Age" required><br>
<input type="submit" value="Save" ng-disabled="myForm.$error.required">

姓名:

年龄:


此处仅当满足表单中的必填字段时,才启用“保存”按钮

您可以使用Angularjs表单验证:

我想您创建了一个带有文本输入的表单

您可以有条件地禁用“保存”按钮(如果窗体为prisitine,请禁用该按钮):



正在工作的plunker。

您可以使用Angularjs表单验证:

我想您创建了一个带有文本输入的表单

您可以有条件地禁用“保存”按钮(如果窗体为prisitine,请禁用该按钮):



正在工作的plunker。

这正是我要找的!那正是我要找的!很复杂,但它会起作用。更简单的解决方案将是Himmet Asvar的答案。复杂,但它会起作用。更简单的解决方案是Himmet Asvar的答案。