我正在开发一份付款表格。此表单有一个action属性,用于将表单数据发送到epay。问题是我需要在将表单数据发送到epay之前对其进行验证。我是否可以通过某种方式从验证脚本执行表单操作?
表单id用于使用jQuery捕获表单提交,并开始验证数据。
<form id="ajax-payment-form" action="url to payment company site">
感谢您的时间
特勒尔斯
答案 0 :(得分:0)
执行此操作的正常方法是在表单无效时让submit
事件处理程序返回false
(或调用e.preventDefault();
), not 如果有效,请返回false
(或致电preventDefault
)。如果不取消默认操作,则允许提交表单。
如果由于某种原因不适合您,您可以使用表单的submit
功能:
$("#ajax-payment-form")[0].submit();
或者
document.getElementById("ajax-payment-form").submit();
这将提交表单,没有触发任何表单提交处理程序。 (理论上说,如果您以编程方式提交表单,那么您已经对其进行了验证。)
请注意,我直接在DOM元素上调用submit
。如果您使用jQuery($("#ajax-payment-form").submit();
),将调用提交事件处理程序 。示例(Stack Snippets不允许表单提交,所以......) Live Copy
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<!-- Note the onsubmit="return false;" to prevent form
submission if the handler is triggered -->
<form id="the-form" action="http://google.com/search" target="_blank" onsubmit="return false;">
<input type="text" name="q" value="kittens">
</form>
<button id="via-jquery">Submit with jQuery</button>
<button id="via-DOM">Submit with DOM</button>
<script>
(function() {
"use strict";
$("#via-jquery").on("click", function() {
$("#the-form").submit();
});
$("#via-DOM").on("click", function() {
$("#the-form")[0].submit();
});
})();
</script>
</body>
</html>
答案 1 :(得分:0)
如果您从提交处理程序中返回false
,表单将无法提交。
$('#ajax-payment-form').submit(function(){
var isValid= true;
/* run validation code and set isValid = false if any conditions fail*/
return isValid;
});