2015-01-06 112 views
1

我知道标题声音与一些其他线程类似,但它是一个有点different.I有几个按钮像:执行JavaScript之前提交

<input type=button name=Ok onclick='window.location="www.bla.com/bla.php"'> 

当用户按下其中任何一个,我想要一个javascript或jQuery代码运行,但之后,我想发送到www.bla.com/bla.php。

我提交表单一个jQuery代码:

$(document).ready(function() { 
    $(':button').click(function(){ 
    document.getElementById('contact').submit();  
    }); 

jQuery的代码工作,但按键不...

+0

@Teemu对不起,我“和”在忘了window.location的 –

+0

你混了你的Html。 – Fuzzyma

+0

@Fuzzyma这是怎么回事?两者在JS和HTML中都是有效的。 – Teemu

回答

2

我的解决方案基于jQuery。

的语法在这里是不正确的:

<input type=button name=Ok onclick="www.bla.com/bla.php"> 

修改它:

<input type=button name=Ok data-href="www.bla.com/bla.php"> 

的jQuery:

$(document).ready(function() { 
    $(':button').click(function(){ 
    var hrefCurr = $(this).attr('data-href'); 
    document.getElementById('contact').submit(); 
    window.location.href = hrefCurr; 
}); 
+0

对不起,我忘了window.location ..请再次检查我的问题 –

+0

这是动态完成的。请仔细阅读,它应该工作。 – Pupil

+0

好的,给我几分钟试试吧 –

3

试试这个

<input class="btn" type=button name=Ok data-href="location"> 

$(document).ready(function() { 
    $('.btn').click(function(){ 

    // as you have used jQuery selector you can use it here like this 
    $('#contact').submit(); 

    var location = $(this).attr("data-href"); 

    window.location.href = location; 
    }); 
}); 
+0

你的答案可能工作,但我需要它更加特别,因为我有很多按钮,并且他们每个人都会将您发送到不同的页面 –

+0

您可以在点击按钮时指定每个按钮的data-href位置采取该按钮的网址,并重定向到该网址 –

+1

您可以指定按钮的动作属性中的位置。 – Jasen

1

像这样的事情可以做的工作?

<input type='button' name='ok_btn' id='ok_btn' value='Ok' data-href="www.bla.com/bla.php" /> 

$(document).ready(
    function() { 
     $('#ok_btn).on('click',function(){ 
      // Do your stuff 
      // Finally: 
      window.location.replace($(this).attr('data-href')); 
     }); 
    } 
); 
+0

这将起作用,因为表单没有在代码片段中提交。这不是OP想要的。 – Teemu

+0

Hm,所以用'$('#contact')替换'window.location ...'。attr('action',$(this).attr('data-href')); $('#contact')。submit();'可以做到吗? – dam660

2

表单提交后没有javascript执行。表单提交更改window.location并停止从执行的旧window.location javascritpt。

但你可以伪造它。

  • 使用jQuery的形式提交表单(如果CORS将允许)

  • 或有脚本的形式目的地做一个重定向到您想要的位置。

  • 或提交到所需的位置,并有有脚本发送表单数据到它应该去

+0

确切地说,您可以执行一些JS,因为在加载新页面之前会有一段延迟,但是'location.href'的更改会立即被阻止。 – Teemu