问题描述
我正在尝试从我的页面上的现有JavaScript表单小部件覆盖2个属性,我不太确定如何去做:
- 我想在表单提交时重定向到不同的URL。
- 我需要在表单提交时将数据点推送到具有id ='prospects_referral_type'的终端系统
这是表单小部件当前存在的网站: :
这是小部件的脚本:
<script src="https://widgets.healcode.com/javascripts/healcode.js" type="text/javascript"></script>
<healcode-widget data-type="prospects" data-widget-partner="object" data-widget-id="8423870a150" data-widget-version="0"></healcode-widget>
这是使用Tamb代码的完整实现的简化版本,但仍然无法使重定向工作:
<html>
<head>
<meta charset="utf-8">
<script>
$('healcode-widget').submit((e)=>{
e.preventDefault();
myAjaxPost();
window.location.replace("https://jabzboxing.fitness/thankyou");
})
</script>
</head>
<body>
<script src="https://widgets.healcode.com/javascripts/healcode.js" type="text/javascript"></script>
<healcode-widget data-type="prospects" data-widget-partner="object" data-widget-id="8423870a150" data-widget-version="0"></healcode-widget>
</body>
</html>
1楼
我想这就是你要求的。
要更新表单的发布位置:
jQuery('form[id^=prospect_form').attr('action', 'http://stackoverflow.com')
要添加其他字段:
jQuery('form[id^=prospect_form').append('<input id="prospects_referral_type" type="hidden"/>')
请记住,此代码必须在加载表单后运行,但不必提交。
2楼
所以有很多方法可以做到这一点:
客户端:
通过AJAX提交表单(注意:有很多方法可以做到这一点)。 找出您希望支持的最早的浏览器。 如果jQuery没问题,请使用他们的ajax方法并在表单提交时提交给相应的端点。
$('form').submit((e)=>{
e.preventDefault();
myAjaxPost();
//on the .success method of the ajax POST you can simply do one of these
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
})
服务器端:
处理后端的帖子,并在成功时简单地重新路由。 考虑到你的后端可能是.NET,Node,PHP,这可以采取多种形式。 IDK。