我的代码出了问题。我有一个html表单,其中按钮在单击时提交但是会先进行一些检查,如果所有值都为true,则表单将被提交 - 但是在我的代码中,它不起作用。有没有人对此有所了解?
$("#button").click(function(e) {
e.preventDefault();
if ($(this).attr("at") == "1") { //some checking
alert("Subsssmitted");
$("form").submit(function() {
alert("Submitted"); // it didn't passed the form didn't submitted
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
<!-- some code -->
<button id="button" at="1">Submit</button>
</form>
加
$('#form').submit()
后
$("form").submit(function(){
alert("Submitted"); // it didn't passed the form didn't submitted
});
因为您只是定义事件处理程序但不触发提交事件。
如果可能的话
$("form").submit(function(){
alert("Submitted"); // it didn't passed the form didn't submitted
});
在click事件处理程序之外
你应该这样做:
$("#button").click(function(e){
e.preventDefault();
if($(this).attr("at") == "1"){ //some checking
alert("Subsssmitted");
// here you trigger event
$("form").submit();
}
});
// here you listen event
$("form").on("submit", function() {
alert("submitted")
})
$('#myForm').submit(function(event){
// do your validation success
if(!success){
event.preventDefault();
}
console.log('fsdfsdfds');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm" action="/google">
<input type="text" id="name">
<button id="button" at="1" type="submit">Submit"></button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您的代码适合我,删除e.preventDefault()
并尝试,
$("#button").click(function(e){
if($(this).attr("at") == "1"){
$("form").submit(function(){
console.log('done');
});
}
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<form action="">
<button id="button" at="1">Submit</button>
</form>
刚删除“e.preventDefault();”按钮点击事件,它将正常工作。