2016-06-10 26 views
1

我需要爲操作表單中的鏈接添加一個JavaScript變量。我的問題是,這可能嗎?如何添加JavaScript變量以形成動作

JavaScript函數:

<script> 
    function parameter() 
    { 
     function getUrlVars() { 
      var vars = {}; 
      var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) { 
       vars[key] = value; 
      }); 
      return vars; 
     } 
     var vpid = getUrlVars()["pid"]; 
    } 
    //var link = "second_02.html" + pid.toString(); 
</script> 

,並在我的形式,我需要將變量「鏈接」添加到一個表單操作,就像如下:

<form action='second_02.html + ?pid=vpid&' id="sky-form" class="sky-form"> 

我真的不知道,如果我我對自己遇到的問題做了很好的解釋。 在此先感謝。

回答

1

您需要通過JavaScript以編程方式執行該操作。

這條線後...

var vpid = getUrlVars()["pid"]; 

添加這個...

document.getElementById('sky-form').action = 'second_02.html?pid=' + vpid; 

鑑於VPID的內容的性質,那麼你可以在負載情況下實現此您窗口。

替代方法1

這裏是做你看起來是需要的另一種方法,但它需要你與計算參數設置的新位置。您可以修改嘗試從文本框中獲取文本的行,以及需要附加到網址的任何內容。

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script> 
      function validateForm() { 
       //alert('Validating form...'); 
       var text = document.getElementById('txtValue').value; 
       text = escape(text); 
       location.href = 'test.html?param=' + text; 
       return false; 
      } 
     </script> 
    </head> 
    <body> 
     <form id="frmTest" method="get" action="" onsubmit="return validateForm();"> 
      <input id="txtValue" type="text" value="foobar"> 
      <input id="btnSubmit" type="submit" value="Submit"> 
     </form> 
    </body> 
</html> 

替代方法2

這種方法可以讓你繼續使用您的形式,即使其GET方法,但你設置一個隱藏字段的值,然後將追加到提交期間查詢字符串中的網址。

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script> 
      function validateForm() { 
       //alert('Validating form...'); 
       document.getElementById('hidTest').value = 'some calculated value'; 
       return true; 
      } 
     </script> 
    </head> 
    <body> 
     <form id="frmTest" method="get" action="" onsubmit="return validateForm();"> 
      <input id="txtValue" type="text" value="foobar"> 
      <input id="btnSubmit" type="submit" value="Submit"> 
      <input name="hidTest" id="hidTest" type="hidden" value="testIt"> 
     </form> 
    </body> 
</html> 
+0

我不知道如果我做錯事,我有這樣的<按鈕類型=「提交」類=「BTN-U」>搜索這是一種負責任的按鈕形式來執行操作,我試過了,但沒有成功 – Lanshore

+0

你是否已經在你的窗口加載了JavaScript?在提交表單之前,無論是在文檔加載時,還是在提交表單之前,您都需要確保其運行。您可以添加一個onsubmit處理程序到表單中,以在提交之前設置該操作。 – ManoDestra

+0

我在這裏假設你正在爲表單使用POST方法?如果沒有,那麼你將無法做到這一點,因爲在提交期間,任何表單變量都會附加到你的查詢字符串中。您必須手動將location.href更改爲您需要的新值,而不是通過表單完成。或者附加表單值,如果你確實需要表單。 – ManoDestra