将我的按钮type
更改为submit
后,它没有提交表单。在某种程度上,此后AJAX请求不起作用。如果我将其更改为type="button"
,那么它就可以了,但是我想要这样做是因为必需验证在提供type="button"
时不起作用。它仅在我提供按钮类型提交但表单未提交时才起作用。
<form>
<input type="email" class="form-control" id="passwordReset" placeholder="Email" required/>
<button type="submit" id="passwordButton"> Submit</button>
</form>
$("#passwordButton").on('submit', function(e) {
e.preventDefault();
const email = $("#passwordReset").val();
$.ajax({
type: "GET",
url: "/forget_password=" + email,
success: function(response) {
if (!response.data) {
$(".sendError").show();
} else {
$(".sendSuccess").show();
}
}
});
})
我还希望在检查required
条件的同时提交表单。
答案 0 :(得分:2)
从MDN报价:
请注意,submit事件会在元素本身上触发,而不在元素内部或元素内部触发。 (表单是提交的,不是按钮。)
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event
将监听器附加到按钮的click
或表单的submit
事件。
答案 1 :(得分:1)
请注意,Submit事件在
<form>
元素本身上触发,而不在其中的任何<button>
或<input type="submit">
上触发。 (表单是提交的,不是按钮。)
改为尝试click
事件:
$("#passwordButton").on('click', function(e) {
更新:我认为只需在 form 上提交 submit 事件就足够了,因为单击任何输入{{1} }:
type=submit
$('#myForm').on('submit', function(){
alert('Your form is submitting');
/*
Your code here
*/
});
答案 2 :(得分:0)
我认为您应该创建一个像<button onclick="Submit()">save</button>
这样的法线
并编写如下代码:
Submit(e){
e.preventDefault();
const email = $("#passwordReset").val();
$.ajax({
type: "GET",
url: "/forget_password=" + email,
success: function(response) {
if (!response.data) {
$(".sendError").show();
} else {
$(".sendSuccess").show();
}
}
});
})
}
答案 3 :(得分:0)
将Id或类属性添加到您的表单。
<form id="formYouWantToSubmit">
<input type="email" class="form-control" id="passwordReset" placeholder="Email" required/>
<button type="submit" id="passwordButton"> Submit</button>
</form>
然后
$("#formYouWantToSubmit").on('submit', function(e) {
const email = $("#passwordReset").val();
// This will validate if email having any value (from string point of view)
if (!email) {
e.preventDefault();// To restrict form submission
//### Do anything here when validation fails
return false;
}
$.ajax({
type: "GET",
url: "/forget_password=" + email,
success: function(response) {
if (!response.data) {
$(".sendError").show();
} else {
$(".sendSuccess").show();
}
}
});
})
要记住的事情: