页面中有大约20个输入字段和一个保存和一个注册按钮。如果在至少一个字段中发生了某些变化,我该如何启用“保存”按钮?
答案 0 :(得分:5)
您可以使用Angularjs表单验证:
我想你创建了一个带有文本输入的表单。
您可以有条件地禁用保存按钮(如果表单是可用的,请禁用该按钮):
<input type="submit" ng-disabled="myForm.$pristine" />
工作人员here。
答案 1 :(得分:1)
假设您的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);
}
答案 2 :(得分:1)
如果您不需要比较值,您可以将关键事件的事件处理程序附加到所有文本框,并在触发任何文本框中的事件后启用保存按钮。
如果您需要更复杂的“复杂”功能,只有在某些数据真正发生变化时才能保存(您可以将“aaa”更改为“aa” - 但后来意识到您希望将其恢复为“aaa” )然后您需要维护原始数据并将其与任何新更改进行比较,然后确定是启用保存按钮还是禁用它。在这种情况下,您可以为输入文本框添加某种"original-data"
属性,这些属性将在生成/加载页面时保留原始值,并在每个键更改事件中运行比较器。
答案 3 :(得分:0)
使用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">
此处仅当满足表单中的必填字段时才启用保存按钮