2012-01-13 51 views
0

所以我有一個簡單的搜索表單和提交按鈕。我想要做的是驗證輸入以確定搜索查詢中是否包含「=」,如果是,那麼我希望它將輸入字符串(que)發送到vert.php。如果沒有,那麼我希望它發送到search.php。基於文本輸入改變表單動作

<script type="text/javascript" language="JavaScript"> 
function chgact() 
    { 
if(document.myform.que.indexOf(=) == true) { 
    document.myform.action = '/vert.php'; 
    } 
return true; 
} 
</script> 
    <h1>Keyword search</h1> 
    <form name="myform" method="post" action="/search.php" onSubmit="return chgact()"> 
     Keywords: <br/> 
     <input type="text" name="que" id="que"/> 
     <p/> 
     Items to display: <br/> 
     <select name="i"> 
     <option value="10">10</option> 
     <option value="25">25</option> 
     <option value="50">50</option> 
     </select> 
     <p/> 
     <input type="submit" name="submit" value="Search"/> 
    </form> 

任何幫助都將是如此的灰心讚賞! :)

回答

0

變更線4 if (document.myform.que.value.indexOf('=') != -1) {

你需要得到值闕,則需要enquote等號(你要搜索的字符「=」),和indexOf函數如果未找到或返回第一個出現位置(即整數),則返回-1。它不返回布爾值。

下面是更新後的代碼:

<script type="text/javascript" language="JavaScript"> 
function chgact() 
    { 
if(document.myform.que.value.indexOf('=') != -1) { 
    document.myform.action = '/vert.php'; 
    } 
return true; 
} 
</script> 
    <h1>Keyword search</h1> 
    <form name="myform" method="post" action="/search.php" onSubmit="return chgact()"> 
     Keywords: <br/> 
     <input type="text" name="que" id="que"/> 
     <p/> 
     Items to display: <br/> 
     <select name="i"> 
     <option value="10">10</option> 
     <option value="25">25</option> 
     <option value="50">50</option> 
     </select> 
     <p/> 
     <input type="submit" name="submit" value="Search"/> 
    </form> 
+0

好吧,所以它返回-1或1或0中的值,並將其作爲動作的值是什麼意思?我更新了代碼,但它並沒有放置vert,因爲我認爲這是myform.action =行的行爲? – 2012-01-13 15:33:01

+0

如果單擊「提交」按鈕時未在「que」文本框中找到等號,則'indexOf'返回-1。因此,使用上面的邏輯,如果indexOf('=')返回非-1的值(表示在文本框中找到'='字符WAS),那麼它會將操作切換爲'/vert.php' 。複製並粘貼上面的全部代碼並嘗試。它應該工作。 – Travesty3 2012-01-13 15:44:05

+0

真棒它確實工作,我感謝你幫助我與那一個邏輯。你提到我必須將值傳遞給「que」,我知道它是正確的,但似乎它必須在Javascript中完成,對嗎?我在哪裏可以學習如何編碼? – 2012-01-13 19:12:51

0

我建議你執行與PHP這個動作。如果您的網站訪問者關閉了JavaScript,他們將無法從您的邏輯中獲益。我建議你看看strpbrk()函數來檢測「=」字符。

+0

究竟是什麼像這樣的腳本看起來像?我還沒有嘗試過使用PHP進行表單驗證。 – 2012-01-13 15:33:39

+0

我認爲,擔心瀏覽器是否支持Javascript已成爲過去。我認爲從服務器下載額外頁面以確定重定向的位置會更加不利。 – Travesty3 2012-01-13 15:51:43

+0

在23個網站關閉js的情況下,我們仍然可以獲得大約11%的所有網站訪問者。消費者擁有較高的js比例,大中型企業的比例較低。我不知道你的過濾器在這裏,但我們注意到11%。 – twood 2012-01-14 17:49:44