在jQuery中,表单提交有两种主要方式:
$("#id").submit()
方法以编程方式触发提交<input type="submit">
或<button type="submit">
按钮触发提交当$("#id").submit()
不起作用而按钮提交可以工作时,可能的原因包括:
preventDefault()
$("#id")
可能没有正确选中表单元素$("#yourFormId").off('submit').submit(); // 移除所有submit事件处理程序后提交
$("#yourFormId")[0].reportValidity(); // 检查验证
$("#yourFormId").get(0).submit(); // 原生DOM方法提交
console.log($("#yourFormId").length); // 应该输出1
$(document).ready(function() {
$("#yourFormId").submit();
});
确保没有出现类似这样的结构:
<form id="form1">
<form id="form2">
<!-- 内容 -->
</form>
</form>
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<form id="myForm" action="/submit" method="post">
<input type="text" name="username" required>
<button type="button" id="jsSubmit">Submit via JS</button>
<button type="submit">Regular Submit</button>
</form>
<script>
$(document).ready(function() {
$("#jsSubmit").click(function() {
// 确保表单验证通过
if($("#myForm")[0].reportValidity()) {
// 使用原生DOM方法提交
$("#myForm").get(0).submit();
}
});
});
</script>
</body>
</html>
这种问题常见于:
通过以上方法,应该能够解决jQuery中表单提交不工作的问题。
没有搜到相关的文章