这是我的html和JS代码。当我第一次单击按钮时,它会提交表单,但不会调用onclick函数。我尝试过将onsubmit方法添加到表单中并使按钮类型为button。但是,这并没有任何改变。
表单提交适用于Django btw。
<form action='' method='GET' required id='form_id'>
<input class='url_box' type='url' name='url_value' placeholder='Paste the URL...'/> <br>
<button class='submit-btn' type='submit' onclick="delayRedirect()">Listen</button>
</form>
JavaScript
function delayRedirect(){
setTimeout(function(){
window.location = 'player';
}, 1500);
}
谢谢!
答案 0 :(得分:0)
<form required id='form_id'>
<input class='url_box' type='url' name='url_value' placeholder='Paste the URL...'/> <br>
<button class='submit-btn'>Listen</button>
</form>
/ JS
const btn = document.querySelector('.sumbit-btn')
btn.addEventListener("click", (e)=>{
e.preventDefault() // becuse the btn in <form></form>
// send to Django
})
答案 1 :(得分:0)
将按钮类型更改为按钮,并记录“已单击”。提交表单之前。
$('.submit-btn').click((e) => {
console.log('clicked.');
$('form').submit();
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action='' method='GET' required id='form_id'>
<input class='url_box' type='url' name='url_value' placeholder='Paste the URL...'/> <br>
<button class='submit-btn' type='button'>Listen</button>
</form>
答案 2 :(得分:0)
HTML
<form action='' target="you_dont_see_me" method='POST' required id='form_id'>
<input class='url_box' type='url' name='url_value' placeholder='Paste the URL...'/> <br>
<button class='submit-btn' type='button' onclick="delayRedirect()">Listen</button>
</form>
<iframe name="you_dont_see_me" style="display:none"></iframe>
JS
function delayRedirect(){
document.getElementById('form_id').submit();
setTimeout(function(){
//do whatever you want
}, 1500);
}
您可以使用iframe,但是您的方法需要更改为POST。 我个人会使用ajax来处理这种情况