jquery - 通过模态传递 data-id 到 jQuery 验证
问题描述
我正在使用 jQuery Validate 和 Bootstrap 模式 - 我需要将原始按钮的数据 ID 单击到 validate 的提交处理程序中,以便我可以通过 AJAX 将其传递到 AJAX 脚本中。
简单地说,我有一个链接:
<a data-toggle="modal" data-target="#add-modal"
data-id="77" class="icon-plus-circle"></a>
然后我有我的模态:
<div id="add-modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Add</h4>
</div>
<form id="add_form" class="form-horizontal" method="POST">
<div class="modal-body">
<div class="form-group">
<label class="col-lg-4 control-label">Start</label>
<div class="col-lg-8">
<input type="text" name="start" id="add_start" value="" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-lg-4 control-label">End</label>
<div class="col-lg-8">
<input type="text" name="end" id="add_end" value="" class="form-control" />
</div>
</div>
</div>
<div class="modal-footer ">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<input type="submit" value="Save" class="btn btn-p1" >
</div>
</form>
</div>
</div>
</div>
最后是 JS:
$("#add_form").validate({
rules: {
start: "required",
end: "required"
},
submitHandler: function(form) {
var id=$(this).attr('data-id');
var s=$('#add_start').val();
var e=$('#add_end').val();
$.ajax({
type: "POST",
url: "/add.php",
data: {start: s, end: e, eid: id},
success: function(){
$('#add-modal').modal('hide');
$('#add_start').val('');
$('#add_end').val('');
}
});
return false;
}
});
});
在 JS 中,我要么想获取单击按钮的 ID,要么将其作为隐藏字段传递到模态本身,这样我就可以序列化表单,但我不知道如何
我需要能够将 data-id 值传递到 AJAX 脚本中,这样我才能确保将表单值应用于正确的 ID
解决方案
如果您将data-id
作为hidden
字段传递到模态表单中,则该值将在表单序列化时自动成为查询字符串的一部分。否则,您可以在您submitHandler
的其他字段值中以编程方式捕获此值。
构造一个click
处理程序,该处理程序将在单击时将此值分配给隐藏字段。
$('a.icon-plus-circle').on('click', function() {
var buttonID = $(this).data('id'); // get value of data-id
$('#hidden').val(buttonID); // assign data-id to hidden field called #hidden
});
见: https ://api.jquery.com/data/#data2
确保form
包含与上述相同目标的隐藏字段。
<form id="add_form" class="form-horizontal" method="POST">
<input type="hidden" id="hidden" value="" />
....
并在以下范围内捕获/分配submitHandler
:
submitHandler: function(form) {
var id = $('#hidden').val(); // get value of hidden field called #hidden
....
推荐阅读
- file - 为什么在创建文件时读取垃圾索引节点是操作系统?
- security - 用于禁用 AWS 上特定命名空间的所有 Internet 连接的 kubernetes 网络策略 - EKS
- android - 如何从 URL 获取视频缩略图
- apache-kafka - 如何使用 kafka 工具集生成具有空值的 Kafka 记录
- cuda - Nvidia GPU 同时访问全局内存中的单个位置
- cybersource - Flex MicroForm 信用卡品牌标志
- c++ - 使用 is_same_v 自动推导类型
- linux - Mac OS Catalina zshell:cat -A 是非法的,那么替代品是什么?
- java - 是否可以从 Kotlin 评论链接 Java 方法?
- node.js - 如何在文本索引Mongodb中将精确短语与动态字符串匹配?