微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery将表单提交到新选项卡?

我有一个表单中的动作链接需要每分钟更新一个令牌.当用户点击提交按钮时,我从api通话中获取新的url / token.我正在使用这样的东西
<form id="somelink" action="http://some.external.url/" target="_blank" />

 $('#somebutton').click(function(e) {
      e.preventDefault();
      var url = '/apicall?id=' + $('#someid').val();                  
      $.post(url,function(data) {
           $('#somelink').attr('action',data);
           $('#somelink').submit();

问题是,使用js / jQuery,当它提交它在一个新的窗口打开没有典型的菜单和按钮在浏览器,它是一个弹出窗口的大小.

没有jQuery,如果我只是点击按钮,它将在一个新的选项卡中打开.

如何用jQuery完成这个?

解决方法

而不是抓住点击事件,尝试捕获表单的提交事件,以防万一发现任何错误,您可以使用event.preventDefault();
更新
在这里我用这个代码测试,它的工作正常,
<!doctype html />
<html>
  <head>        
    <title></title>
    <script type="text/javascript" src="jquery.js"/></script>
</head>
<body>
  <form action='http://someSite.com' id='somelink' target='_blank'>
    <input type='text' name='lol' id='lol'/>
    <input type='submit'/>
  </form>
  <script type="text/javascript"/>
      $('#somelink').on('submit',function(e) {
          if($('#lol').val() == "poop"){ //Sample error check
              e.preventDefault();
              alert($('#lol').val());
          }
      });
  </script>
</body>
</html>

这是什么,如果你输入“poop”它不提交表单,其他任何东西它提交表单到新的选项卡.希望这可以帮助 :)
更新:
关于你的评论,如果发生错误,你想打开一些其他选项卡,然后用$(this).attr({“action”:“http://www.someothersite.com”})替换e.preventDefault() ; .希望这可以帮助 :)
更新:
如果您想要异步打开选项卡,那么您将遇到困难,这是最接近的.
HTML部分

<form id="someForm" action="about:blank" target="newStuff" />
<input type="submit" value="12345" id="someid" />

Javascript部分

$(document).ready(function() {
 $('#someForm').submit(function(e) {
    $.ajax({
        url: 'http://search.twitter.com/search.json?',dataType: 'jsonp',success: function(data) {
            if (data != "") {     
                var link = "http://www.google.com/";
                window.open(link,'newStuff'); //open's link in newly opened tab!
            }
        }
    });
 });
 });

原文地址:https://www.jb51.cc/jquery/180185.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐