38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
document.addEventListener('DOMContentLoaded', function() {
|
|
var form = document.getElementById(#{String fvId}).closest('form');
|
|
|
|
|
|
var formSubmit = form.querySelector('input[type=submit], button[type=submit]:not(.btn-mass-input-add):not(.btn-mass-input-delete)');
|
|
var cellInputs = Array.from(form.querySelectorAll('.massinput--cell input:not([type=hidden])'));
|
|
|
|
cellInputs.forEach(function(input) {
|
|
makeImplicitSubmit(input, formSubmit);
|
|
});
|
|
|
|
|
|
Array.from(form.querySelectorAll('.massinput--add')).forEach(function(wrapper) {
|
|
var addSubmit = wrapper.querySelector('.btn-mass-input-add');
|
|
var addInputs = Array.from(wrapper.querySelectorAll('input:not([type=hidden]):not(.btn-mass-input-add)'));
|
|
|
|
addInputs.forEach(function(input) {
|
|
makeImplicitSubmit(input, addSubmit);
|
|
});
|
|
});
|
|
|
|
// Override implicit submit (pressing enter) behaviour to trigger a specified submit button instead of the default
|
|
function makeImplicitSubmit(input, submit) {
|
|
if (!submit) {
|
|
throw new Error('implicitSubmit(input, options) needs to be passed a submit element via options');
|
|
}
|
|
|
|
var doSubmit = function(event) {
|
|
if (event.keyCode == 13) {
|
|
event.preventDefault();
|
|
submit.click();
|
|
}
|
|
};
|
|
|
|
input.addEventListener('keypress', doSubmit);
|
|
}
|
|
});
|