好的,我对jquery和javascript一般都很新。我有一个表单,我想要它做的表单运行一个函数,以确保一切都在那里,所有变量都是正确的然后提交。我已将onclick
值用于提交按钮,并使其运行使用preventDefault()
的函数。我不确定我是否正确使用它但它似乎没有工作。这就是我所拥有的,当你点击提交时,即使if语句为false,它也只是提交。
function checkSubmitStatus() {
$("#myform").submit(function(event){
if( whatever==true) {
event.preventDefault();
}
});
}
<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()">
谢谢!
答案 0 :(得分:11)
通过将$("#myform").submit(...)
放在checkSubmitStatus()
函数中,在单击按钮并且表单已提交后,您将附加提交处理程序。试试这个:
<script type="text/javascript">
$(document).ready(function() {
$("#myform").submit(function(event){
if(whatever) {
event.preventDefault();
}
});
});
</script>
<form id="myform">
<input type="submit" name="submit" value="Submit">
</form>
答案 1 :(得分:9)
更改
<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()">
到
<input type="submit" name="submit" value="Submit" >
并将您的javascript更改为
$("#myform").submit(function(event){
if( whatever==true)
{
event.preventDefault();
}
});
答案 2 :(得分:3)
您可以放弃checkSubmitStatus()
功能。
$("#myform").submit(function(event){
if(whatever == true) {
event.preventDefault();
}
});
同时放下这个:
onClick="checkSubmitStatus()"
答案 3 :(得分:1)
在onclick事件处理程序中,如果返回false,则表单将不会提交。试着这样做:
function checkSubmitStatus() {
if(validationSuccess==true)
{
return true;
}
else
{
return false;
}
}
<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">
答案 4 :(得分:1)
我会稍微重构一下......
function checkSubmitStatus() {
if( whatever==true) {
return false;
}
return true;
}
<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">
答案 5 :(得分:0)
let button = document.getElementById('submit');
button.addEventListener('click', function(event) {
event.preventDefault();
this.innerHTML = "Button clicked!";
});