【发布时间】:2018-11-30 22:30:13
【问题描述】:
我正在编写新的 PayPal Express Checkout JavaScript 按钮,因此当单击它时,会运行一些验证,并根据验证,继续或抑制按钮体验。
这个演示展示了一些验证,但并不完全符合我的需要。 https://developer.paypal.com/demo/checkout/#/pattern/validation
我有这个测试用例,你可以试试:https://jsfiddle.net/gardavis/51kvtjax - 此代码使用 PayPal 的脚本:https://www.paypalobjects.com/api/checkout.js。
这是我试图开始工作的 jsfiddle 的一部分......
// Called when page displays
validate: function(actions) {
console.log("validate called");
actions.disable(); // Allow for validation in onClick()
paypalActions = actions; // Save for later enable()/disable() calls
},
// Called for every click on the PayPal button even if actions.disabled
onClick: function() {
console.log('onClick called');
// Do validations and if OK, continue on to PayPal popup
var zip = document.querySelector('#zipcode').value;
var isValid = zip.length >= 5;
// Issue: fix to continue if valid, suppress popup if invalid
if (isValid) {
document.querySelector('#msg').style.display = 'none';
paypalActions.enable();
// TODO: Simulate click of PayPal button to display popup
} else {
document.querySelector('#msg').style.display = 'block';
paypalActions.disable(); // Too late
}
},
validate() 被调用一次,基本上是在页面加载的时候。现在验证还为时过早。单击按钮时会调用 onClick() 函数,这是进行验证的好地方,但如果有效则我无法继续,如果无效则显示错误。
该演示在 validate() 函数范围内使用了一个复选框事件,因此它能够启用/禁用 PayPal 弹出窗口(如果禁用,onClick() 仍然有效)。演示的 onClick() 只是显示/隐藏错误消息。
有人知道如何在 onClick() 中进行验证吗?
【问题讨论】:
-
在 javascript 中创建验证函数,如果验证不成功,请调用 e.preventdefault()
-
我尝试在验证失败时添加 e.preventDefault() 并且控制台显示:e.preventDefault 不是函数。在验证成功时我希望它运行的情况不会有帮助。
标签: javascript paypal express-checkout