2014-09-20 110 views
-2

我想使用JS函數的返回值作爲表單獲取操作的URL。是否可能或者我需要在onSubmit屬性中使用函數調用來設置表單屬性?使用js函數返回值爲html表單動作屬性

編輯:這基本上就是我想要做的

<div class="search"> 
    <form method="get" action="https://duckduckgo.com/" id="search-form"> 
     <input id="searchbar" type="text" name="q" size="31" maxlength="255" value="" autofocus="autofocus"/> 
    </form> 
    <script type="text/javascript"> 
     document.getElementById("search-form").action = "bang()"; 
    </script> 
</div> 

哐功能是DDG在JS的爆炸系統的實現,所以我可以很容易地在我的網頁劉海添加到搜索框。

+0

你的意思是你有一個返回URL和做別的事情,你要調用該函數,並設置表單的action屬性的過程中javascript函數? – Rhumborl 2014-09-20 21:35:22

+0

'form.action = yourFunction();'會做到這一點。 – Barmar 2014-09-20 21:37:22

+0

我想在用戶提交表單時調用該函數,並對函數進行評估,並返回用於獲取請求 – anon 2014-09-20 21:38:08

回答

1

您可以使用表單的onsubmit事件在實際提交發生之前設置操作。

<form id="testForm" methods="get" action="#" onsubmit="setFormUrl()"> 
    Search: <input type="text" name="q" /> 
    <input type="submit" value="Go" /> 
</form> 
function bang() 
{ 
    return "http://www.google.com"; 
} 

function setFormUrl() 
{ 
    var url = bang(); 
    document.getElementById('testForm').setAttribute('action', url); 
} 
+0

耶,這是我的替代計劃,但我想知道是否有任何方式在獲取請求之前獲取action屬性中指定的函數,而不是瀏覽器嘗試加載函數生成的頁面。 – anon 2014-09-20 22:10:54