2015-01-06 151 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