2013-05-15 25 views
1

我有一個值的列表,我只希望被允許輸入到一個HTML表單中的文本框中的行動發生。該操作將最終用戶帶到某個網頁。但是我希望最終用戶只輸入特定的值。他們可以被允許輸入其他內容,但他們會收到通知/警告他們輸入了錯誤的代碼。如何只允許在HTML表單中的文本框中的預定值

三個值的預定列表的假設會是這樣的

GGG01,OOO03和MTM02

正如我所說的,和最終用戶應該被允許進入任何事情,但只有當他們進入一個這三個代碼應該被帶到特定的網頁。我試過驗證腳本,沒有任何東西似乎工作。我在這裏錯過了一些東西,我敢打賭這很容易。

這是我嘗試過但密碼字段無法正常工作。請幫忙。先謝謝你。

<?xml version="1.0" encoding="utf-8"?> 

<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title> 
     Example for Validator 
    </title> 
    <style type="text/css" xml:space="preserve"> 
BODY, P,TD{ font-family: Arial,Verdana,Helvetica, sans-serif; font-size: 10pt } 
A{font-family: Arial,Verdana,Helvetica, sans-serif;} 
B { font-family : Arial, Helvetica, sans-serif; font-size : 12px; font-weight : bold;} 
.error_strings{ font-family:Verdana; font-size:10px; color:#660000;} 
</style><script language="JavaScript" src="gen_validatorv4.js" 
    type="text/javascript" xml:space="preserve"></script> 
    </head> 
    <body> 
    <form action="" name="myform" id="myform"> 
     <table cellspacing="2" cellpadding="2" border="0"> 
     <tr> 
      <td align="right"> 
      First Name 
      </td> 
      <td> 
      <input type="text" name="FirstName" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"> 
      Last Name 
      </td> 
      <td> 
      <input type="text" name="LastName" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"> 
      EMail 
      </td> 
      <td> 
      <input type="text" name="Email" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"> 
      Password 
      </td> 
      <td> 
      <input type="text" name="pwd1" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"> 
      Address 
      </td> 
      <td> 
      <textarea cols="20" rows="5" name="Address"></textarea> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"> 
      Country 
      </td> 
      <td> 
      <select name="Country"> 
      <option value="" selected="selected"> 
       [choose yours] 
      </option> 
      <option value="008"> 
       Albania 
      </option> 
      <option value="012"> 
       Algeria 
      </option> 
      <option value="016"> 
       American Samoa 
      </option> 
      <option value="020"> 
       Andorra 
      </option> 
      <option value="024"> 
       Angola 
      </option> 
      <option value="660"> 
       Anguilla 
      </option> 
      <option value="010"> 
       Antarctica 
      </option> 
      <option value="028"> 
       Antigua And Barbuda 
      </option> 
      <option value="032"> 
       Argentina 
      </option> 
      <option value="051"> 
       Armenia 
      </option> 
      <option value="533"> 
       Aruba 
      </option></select> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"></td> 
      <td> 
      <div id="myform_errorloc" class="error_strings"> 
      </div> 
      </td> 
     </tr> 
     <tr> 
      <td align="right"></td> 
      <td> 
      <input type="submit" value="Submit" /> 
      </td> 
     </tr> 
     </table> 
    </form><script language="JavaScript" type="text/javascript" 
    xml:space="preserve">//<![CDATA[ 
//You should create the validator only after the definition of the HTML form 

    function DoCustomValidation() 
{ 
    var frm = document.forms["myform"]; 
    if(frm.pwd1.value != frm.pwd2.value) 
    { 
    sfm_show_error_msg('The Password and verified password does not match!',frm.pwd1); 
    return false; 
    } 
    else 
    { 
    return true; 
    } 
} 

    frmvalidator.setAddnlValidationFunction(DoCustomValidation); 
//]]></script> 
    </body> 
</html> 
+0

是否有某些原因,你不能使用最明顯的解決方案,原來的問題,即'select'元素?或者不太明顯,但通常更好的解決方案:一組具有相同'name'屬性的單選按鈕? –

回答

0

我認爲我們正在尋找沒有連接到數據庫的選項(這會使答案更長)。要開始您的方向和一個特定的選項(這可能不是您的情況最有利或最有效的選擇):

首先,form標記應具有method屬性。

<form action="confirm.php" method="POST" name="myform" id="myform"> 

然後您可以訪問它並在稍後創建條件語句。例如,如果某人在LastName部分輸入了某個單詞並提交了該單詞,則可以讓它進入confirm.php,這將包括以下腳本(用於評估用戶是否放入某個值,並根據價值,用戶將被重定向到不同的頁面):

if ($_POST['LastName']=="GGG01"){ 
    header("nameofnewwebsite.php"); 
}else{ 
    header("nameofanotherwebsite.php"); 
} 
+0

我試圖做你建議的Mike_Moto,但它不工作。試試這裏http://www.notchsters.com/test.html 你可以在這裏下載文件 - 我可能做錯了什麼。 http://www.notchsters.com/Archive.zip 我很欣賞這種努力。 –

+0

我想我會爲這一個使用java腳本,因爲如果你去http://www.notchsters.com/並且在右上角你會看到一個地方你可以輸入你的代碼 - 我如果最終用戶輸入不正確的代碼,就會在該頁面http://www.notchsters.com/上發生錯誤警告。如果最終用戶輸入正確的代碼 - 比如說這三個GGG01,OOO03,MTM02中的一個,那麼他們會轉到我希望他們轉到的頁面。 –