Javascript 点击链接后发送表单

Javascript 点击链接后发送表单,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个HTML表单,我想使用链接提交它。表单必须发送到链接的href。这是我的想法: 将单击事件设置为链接标记,该链接执行以下操作: $( "#myLink" ).click(function() { var form = $( "#searchForm" ); form.action=$(this).attr('href'); console.log(form.action); form.submit(); }); 阻止跟随链接的默认操作 通过将操作设置为

我有一个HTML表单,我想使用链接提交它。表单必须发送到链接的
href
。这是我的想法:

将单击事件设置为链接
标记
,该链接执行以下操作:

 $( "#myLink" ).click(function() {
   var form =  $( "#searchForm" ); 
   form.action=$(this).attr('href');
   console.log(form.action);
   form.submit();
 });
  • 阻止跟随链接的默认操作
  • 通过将操作设置为链接的href来编辑表单
  • 使用jquery submit()函数提交表单
我正在寻找一个解决方案,我不必改变我的html,只有javascript

我试过了,但没用。这是我的密码:

Javascript:

jQuery('.row_header').find('td').each(function(){
    var cell = jQuery(this);
    cell.find('a').each(function(){
        //Get last link in cell. There is only one
        linkObject = jQuery(this);
    });     

    //Gets form
    var form = jQuery('#searchForm');

    if(typeof linkObject !== 'undefined'){
        //Get location url for form
        var url = linkObject.attr('href');

        linkObject.click(function(e){
            //Prevent default (following link)
            e.preventDefault(); 
            //Set location from link as form action     
            form.attr('action',url);
            //Submits form
            form.submit();

        });
    }
});
HTML:


一个选项是将表单提交按钮的样式设置为链接。你可以在这里看到:

或者让链接使用javascript提交表单。就像这里:


两者都可以满足您的需要。

一个选项是将表单提交按钮的样式设置为链接。你可以在这里看到:

或者让链接使用javascript提交表单。就像这里:


这两个函数都可以满足您的需要。

JQuery submit函数将处理程序绑定到submit事件


例如,您可以使用AJAX发送数据,JQuery提交函数将处理程序绑定到提交事件


例如,您可以使用AJAX发送数据

如果要在单击链接时将表单的
操作设置为链接的
href
,请尝试以下操作:

 $( "#myLink" ).click(function() {
   var form =  $( "#searchForm" ); 
   form.action=$(this).attr('href');
   console.log(form.action);
   form.submit();
 });

这是一个。

如果要在单击链接时将表单的
操作设置为链接的
href
,请尝试以下操作:

 $( "#myLink" ).click(function() {
   var form =  $( "#searchForm" ); 
   form.action=$(this).attr('href');
   console.log(form.action);
   form.submit();
 });

这是一个。

您可以看到链接对象的定义位置。在
中有
linkObject

你定义这个变量了吗

您使用了
一个
元素,可以将您带到链接。因此,您必须使用如下开头的属性
data-
,您可以使其看起来像
data-href1='your link'
ard,并将属性
href
设置为

您的
元素应该是这样的:

<a href='#' data-href1 ='your link'> click </a>    

您可以看到链接对象的定义位置。在
中有
linkObject

你定义这个变量了吗

您使用了
一个
元素,可以将您带到链接。因此,您必须使用如下开头的属性
data-
,您可以使其看起来像
data-href1='your link'
ard,并将属性
href
设置为

您的
元素应该是这样的:

<a href='#' data-href1 ='your link'> click </a>    

我找到了一个解决方案。我仍然不知道为什么,但出于某种原因。submit()不调用submit函数。我的解决方法是找到“提交”按钮并触发对该按钮的单击:

form.find('#submitId').trigger('click'); 
代替

form.submit()


我找到了解决办法。我仍然不知道为什么,但出于某种原因。submit()不调用submit函数。我的解决方法是找到“提交”按钮并触发对该按钮的单击:

form.find('#submitId').trigger('click'); 
代替

form.submit()



你不应该使用“#”,因为它们可能会迫使网页进入顶部。“href='javascript:void(0)'”更安全;在第2行上面,但我添加了它,但它不起作用。我希望避免更改我的html。将其留空不是好的做法。如果它是空白的,那为什么要写呢?我在寻找一种不涉及更改HTML的解决方案。你不应该使用“#”,因为它们可能会迫使网页进入顶部。“href='javascript:void(0)'”更安全;在第2行上面,但我添加了它,但它不起作用。我希望避免更改我的html。将其留空不是好的做法。如果它是空白的,那为什么要写呢?我在寻找一个不涉及改变HTMLhank you的解决方案。控制台记录正确的url,以便设置操作。但是,表单仍然没有提交。没有,但是问题在于我将href更改为的url,并且表单提交正确。请在本地查看并使用您的url进行尝试,表单将正常工作。我没有收到错误。但是它只是跟随链接,不发送postdata。您只需要将
method=“POST”
添加到表单中。我已经添加了,只是在示例中忘记了。没关系。我将form=“post”添加到您的fiddle中,并在一个只有var_dump($_post)的站点上将位置更改为我的本地地址,然后它打印一个空数组。它不发送邮件数据。谢谢。控制台记录正确的url,以便设置操作。但是,表单仍然没有提交。没有,但是问题在于我将href更改为的url,并且表单提交正确。请在本地查看并使用您的url进行尝试,表单将正常工作。我没有收到错误。但是它只是跟随链接,不发送postdata。您只需要将
method=“POST”
添加到表单中。我已经添加了,只是在示例中忘记了。没关系。我将form=“post”添加到您的fiddle中,并在一个只有var_dump($_post)的站点上将位置更改为我的本地地址,然后它打印一个空数组。它不发送帖子数据。我不想使用ajax,我想页面刷新并提交表单,就像按按钮一样。我不想使用ajax,我想页面刷新并提交表单,就像按按钮一样。我想使用普通链接,但重新设置按钮样式。第二个是我在这里要做的,添加一个submit()。然而,我不能让它工作我想使用一个正常的链接,但重新设计一个按钮。第二个是我在这里要做的,添加一个submit()。然而,我无法让它工作