Javascript 带角的嵌套旧式表单
我面临一个棘手的问题:我必须在ng表单中创建一个带有action属性的旧式表单 我这样做的原因是,来自旧式表单的POST请求转到另一个网站,用户应该被“重定向”(实际上是在一个新页面中)到POST请求的结果(进行某种登录) 我可以从javascript模拟旧样式的表单,但是浏览器弹出窗口拦截器将捕获它,它必须像单击链接一样简单 我不能触摸outter ng表单,因为它来自一个框架 因此,我得到的是:Javascript 带角的嵌套旧式表单,javascript,angularjs,forms,angularjs-ng-form,Javascript,Angularjs,Forms,Angularjs Ng Form,我面临一个棘手的问题:我必须在ng表单中创建一个带有action属性的旧式表单 我这样做的原因是,来自旧式表单的POST请求转到另一个网站,用户应该被“重定向”(实际上是在一个新页面中)到POST请求的结果(进行某种登录) 我可以从javascript模拟旧样式的表单,但是浏览器弹出窗口拦截器将捕获它,它必须像单击链接一样简单 我不能触摸outter ng表单,因为它来自一个框架 因此,我得到的是: <div ng-form> ... ... <form action="o
<div ng-form>
...
...
<form action="old_website.com/index.php" method="post" target="_blank">
<input type="hidden" name="field1" value="value1">
<input type="submit" value="Submit">
</form>
...
...
</div>
...
...
...
...
我找不到一个办法来完成这项工作:)希望你能帮忙
[编辑]好吧,我觉得自己很愚蠢。似乎您可以有一个按钮,调用函数来模拟和提交表单,而不会遇到浏览器弹出窗口阻止程序的问题
它似乎也不适用于Firefox
我正在做的是:
HTML:
<button ng-click="submitForm()">Submit</button>
JS:
$scope.submitForm = function() {
var form = $('<form>', {
action: 'old_website.com/index.php',
type: 'post',
target: '_blank'
});
form.append($('<input>', {name: 'field1', value: 'value1'}));
form.submit();
}
HTML:
提交
JS:
$scope.submitForm=function(){
变量形式=$(''{
行动:“old_website.com/index.php”,
键入:“post”,
目标:“\u blank”
});
append($('',{name:'field1',value:'value1'}));
表单提交();
}
由于编辑解决了我遇到的第一个问题,我将关闭此问题并打开另一个Firefox问题
谢谢大家:)
[编辑]解决了firefox的问题。由于编辑解决了我遇到的第一个问题,我将关闭此问题并打开另一个firefox问题 谢谢大家:)
[编辑]解决了firefox的问题。不确定您是否可以禁用ng表单,但另一种满足您需求的方法是在旧样式表单之前关闭标签,这样您的表单就不会包含在ng表单标签中。我认为实际上没有标签可以强制链接在新标签而不是新窗口中打开,因为它基于浏览器偏好。更多信息@RoyPun:它应该留在ng表单中,因为这个按钮实际上是更大表单的一部分。ng表单应该提交旧样式表单前后的字段。@AlessandroCifani:问题不是在新选项卡而不是窗口中打开它,我认为弹出窗口拦截器在这两种情况下都会捕获它。不确定您是否可以禁用ng表单,但另一种满足您需要的方法是在旧样式表单之前关闭标记,这样您的表单就不会包含在ng表单标记中。我实际上不认为有标记可以强制链接在新选项卡而不是新窗口中打开,因为它基于浏览器首选项。更多信息@RoyPun:它应该留在ng表单中,因为这个按钮实际上是更大表单的一部分。在旧样式表单之前和之后,ng表单都应该提交一些字段。@AlessandroCifani:问题不是在新选项卡而不是窗口中打开它,我认为弹出窗口拦截器在这两种情况下都会捕获它。