javascript - 对我的表单进行任何修改时触发的事件
问题描述
我制作了一个带有输入文本和选择的表单。要提交表单,我希望用户单击验证按钮以检查所有字段是否正确归档。如果是,那么最初禁用的按钮提交现在已启用。
这是问题所在,我希望如果用户再次修改表单中的任何内容,然后按钮转回禁用,以便他必须再次验证才能提交。
为此,我想找到一个 jQuery 事件,该事件会在我的表单上的任何事件上触发,以返回提交按钮以再次禁用。
知道我该怎么做吗?
解决方案
您可以使用表单 (delegateTarget) 然后从中选择您希望在范围内的输入类型 ( https://stackoverflow.com/a/3165569/125981 ) 以附加事件处理程序,并禁用该类型所需的那些。由于可能有多个我已经包含和示例,其中有两个提交按钮和一个未禁用的重置按钮。为了扭转这种情况,您需要有某种方法来清除它们,所以我添加了一个自定义事件的示例。
添加了一个重置事件处理程序,因为它可能会在这里发挥作用。
$('#myform').on('change keyup', 'input[type="text"], select', function(event) {
$(event.delegateTarget).find('input[type="submit"]').each(function() {
console.log("disable:", this);
this.disabled = true;
});
})
.on('all-clear', function(event) {
$(event.delegateTarget).find('input[type="submit"]').each(function() {
this.disabled = false;
});
})
.on('click', '#allclear', function(event) {
$(event.delegateTarget).trigger('all-clear');
})
.on('reset', function(event){
// do whatever is desired on the reset of the form
});
.find('input[type="text"]').trigger('change'); //IF you want disabled initially
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<form id="myform">
<input type="text" value="text stuff" />
<select>
<option value="option1" selected="selected">First Option</option>
<option value="option2">Another Option</option>
</select>
<input type="submit" value="Submit" />
<input type="submit" value="Possible Submit" />
<input type="reset" value="Reset" />
<button id="allclear" type="button">All clear</button>
</form>
推荐阅读
- css - 如何将字体系列样式添加到 Html 电子邮件模板
- css - Angular 材质网格列表排列内容到顶部
- java - 负载均衡器没有可供客户端使用的服务器:会议
- sql - ORA-01427: SELECT * FROM TABLE 给出错误单行子查询返回多于一行
- c# - C# 反编译器如何在没有 PDB 文件的情况下工作?
- python - 使用python获取二叉树中给定级别上的所有节点
- ios - UITableView 自定义单元格按钮从主视图中选择其他按钮?
- android - 我的三星平板电脑上的偏好问题,但不是我的手机,可能与上下文有关?
- python - 主管中的多个程序
- javascript - 使用 $.post 将 javascript 数组传递给 c# 数组/列表,而不将数据类型指定为 json