Это кажется простой проблемой, но я не могу заставить ее работать.
У меня есть фрагмент кода, который нельзя изменить (среда CMS):
document.getElementById('mybutton').addEventListener('click', function (event) {
document.getElementById('myform').submit();
});
HTML-разметка выглядит примерно так:
<form id="myform" onsubmit="return helloworld(event);">
<button id="mybutton">click to submit</button>
</form>
Единственная часть, где разметка не может быть изменена, это то, что кнопка должна существовать внутри формы.
Я пробовал использовать onsubmit
, пробовалиспользование чистого JS для захвата события отправки, а также jQuery для захвата отправки, ни один из которых не работает:
function helloworld(event) {
event.preventDefault();
return false;
}
document.getElementById('myform').addEventListener('submit', function (event) {
event.preventDefault();
return false;
});
$('#myform').submit(function (event) {
event.preventDefault();
return false;
});
Составьте:
//this function cannot be altered
document.getElementById('mybutton').addEventListener('click', function (event) {
document.getElementById('myform').submit();
});
//anything below this line can be altered
document.getElementById('myform').addEventListener('submit', function (event) {
event.preventDefault();
return false;
});
$('#myform').submit(function (event) {
event.preventDefault();
return false;
});
function helloworld(event) {
event.preventDefault();
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myform" onsubmit="return helloworld(event);" action="https://stackoverflow.com/">
<!-- this button must exist inside the form -->
<button id="mybutton">click to submit</button>
</form>
Вот jsfiddle: https://jsfiddle.net/7c8e3hns/
Любая помощь очень ценится!