2016-11-11 1245 views
1

我是一个新手,当涉及到的JQuery或Javascript - 所以道歉,如果这是一个简单的一个...获取表单URL没有提交

基本上,我有一个GET形式 - 这是我需要拦截 - 这意味着当按下提交按钮时,我需要调用JavaScript而不是实际提交表单。我想有完整的URL作为输出......像......

http://server/cgi-bin/status.py?val=1223&val2=434334&val3=4343 

形式 -

基本上,我需要的形式来处理的URL,好像它提交,但不提交。主要要求是这个链接小瓶邮件发送给客户,使他们能够使用这个链接

由于跟踪作业进度, 王子

+0

是什么网址?这是你的表单中的一个字段吗? – mrid

+0

你好,欢迎来到SO。我想您可能需要查看此链接,以便从该组获得更好的结果。 http://stackoverflow.com/help/how-to-ask –

回答

1

如果您需要使用javascript处理表单并阻止提交,您需要在用户按下提交按钮时在表单上发生的submit事件中添加一个侦听器。只是一个id属性添加到您的表单元素:

<form method="get" id="myForm"> 
... 
</form> 

然后添加监听器:

<script> 
$(function(){ 
    $("#myForm').on('submit', function(event) { 
     event.preventDefault(); // This line prevents the normal behaviour of the submit button 

     var queryString = $(this).serialize(); // This will generate a query string like so : "val=1223&val2=434334&val3=4343" 

     var url = "http://server/cgi-bin/status.py?" + queryString; // Now you have the full URL 

     // Then you can send an AJAX request to a server-side script that will send the mail 
     $.ajax({ 
      url: 'http://server/cgi-bin/email.py', // Your e-mailing script 
      method: 'POST', // or GET whatever 
      data: { 
       url: url, 
       email: '[email protected]' 
      }, 
      ... 
     }) 

    }) 
}) 


</script> 
+0

OP希望URL为path_to_the_script + query_string。您的代码返回当前文档的url + query_string –

+0

True!我将立即编辑我的帖子 –

1

这东西就像这样

$('form').on('submit', function(event) { 
    var url = '<insert-path-to-desired-script>?' + $(this).serialize(); 

    event.preventDefault(); 
}); 

event.preventDefault()确保表单实际上未提交。

url然后包含一个完整的URL,其中包含所有表单属性。

+0

OP希望url是path_to_the_script + query_string。您的代码返回当前文档的url + query_string –