从模块内部引用特定的表单元素
Referencing a specific form element from inside a module
我正试图弄清楚如何在模块内部引用表单。
模块如下所示:
const UserShows = (function(){
const saveShowToDashboard = function(evt) {
evt.preventDefault();
const $saveShowForm = $(this);
setTimeout(function() {
$saveShowForm.children('.save-show-btn').val('Saved');
}, 500);
const showInfo = $(this).children('.save-show-checkbox').val();
const parsedShowInfo = JSON.parse(showInfo);
const _csrf = $(this).children('.csrf').val();
const artistName = parsedShowInfo.artist;
const data = {
showInfo: parsedShowInfo,
_csrf: _csrf,
};
console.log(data);
$.post('/artists/' + artistName, data, function(res) {
if (res === '/login') {
window.location = res;
}else{
console.log(res);
}
});
};
return {
callSaveShowToDashboard: function(evt){
return saveShowToDashboard(evt);
}
}
})();
// Call saveShowToDashboard on click
$('.save-show').on('submit', UserShows.callSaveShowToDashboard);
我遇到的问题是,我不知道如何引用正在提交的特定保存展览表格(页面上有几个表格;每个表格对应一个艺术家巡演日期)。
在我决定将此函数放入UserShows模块之前,我可以使用$(this)来引用特定的表单,但由于该表单不再是该函数的直接调用方,因此它不起作用。
事实证明,使用JQuery,您可以使用event.target引用触发事件的元素。因此,如果我像这样重写代码,它会起作用:
const saveShowToDashboard = function(evt) {
evt.preventDefault();
const $saveShowForm = $(event.target);
setTimeout(function() {
$saveShowForm.children('.save-show-btn').val('Saved');
}, 500);
const showInfo = $saveShowForm.children('.save-show-checkbox').val();
const parsedShowInfo = JSON.parse(showInfo);
const _csrf = $saveShowForm.children('.csrf').val();
const artistName = parsedShowInfo.artist;
const data = {
showInfo: parsedShowInfo,
_csrf: _csrf,
};
console.log(data);
$.post('/artists/' + artistName, data, function(res) {
if (res === '/login') {
window.location = res;
}else{
console.log(res);
}
});
};
相关文章:
- Javascript更新孙窗口中的表单元素
- 阻止表单元素提交
- 使用带有.net autopostback的ryanfait.com自定义表单元素
- 使用javascript更改表单元素的ID值
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 为什么表单元素不应命名为submit
- 如何重置搜索表单中的特定表单元素
- 使用 ng-repeat访问 ng 表单元素/值
- 获取电子邮件附件的表单元素
- AJAX和php脚本后添加的表单元素未传输到$_POST
- 如何对未知表单元素进行表单验证
- 不显示为表单元素的图像输入按钮的动态创建和appendChild
- 在JavaScript中为表单元素生成键值对
- 表单元素上的jQuery focusout事件即使在单击子元素时也会被触发
- 如何在 OnKeyPress 事件后获取输入表单元素的值
- 表单元素值更改后的角度 JS 验证
- 使用 javascript 中的表单元素构建一个 xml 字符串
- 如何以角度访问表单元素的$valid
- 如果选择了多个选项,则使用 jQuery 显示隐藏的表单元素
- JSON 填充的表单元素不使用 angularJs 过滤器进行过滤