2012-04-06 69 views
0

這是我第一次真正使用javascript進行編碼,而我已經走到死衚衕了。我需要創建一個函數(不幸的是,不允許RegExp)允許我的比薩表單驗證用戶的輸入。爲了確保它只有字母(沒有數字,沒有空格,除了連字符和撇號外沒有特殊字符)。Javascript:驗證字段(在表單上),以便它只能包含字母,允許使用1個連字符,允許使用1個撇號

用戶可能會使用一個撇號(在它之前和之後有一個字母)。並且用戶可以使用一個連字符(在其之前和之後有一個字母),用戶也可以同時使用撇號和連字符,只要用一個字母分隔即可。一旦用戶點擊提交按鈕到CGI,我的最終結果是顯示所有大寫的名稱。

示例;

輸入客戶姓名:麥克或m'ike或m'ike

(點擊提交披薩順序)

結果:MIKE或M'IKE或M'IKE。

到目前爲止,這是我所:

function validatefield01(errMessages) 
{ 


// Get the content of fieldOne 

     var entry1_info = document.pizza.field01.value;       


// error condition will show if character count is less than 4 or greater than 15 

     if ((entry1_info.length <4) && (entry1_info.length <15))     

// error message to be displayed 

     { 
     errMessages += " <li>Minimum characters for Client Surname is 4 maximum 15\n"; 
errMessages += "  must use characters only, Apostrophe (') or hyphen (-) is acceptable.</li>\n"; 
     } 



     return errMessages; 

     for(var i=0; i<entry1_info.length; i++) 
     { 
      ch = entry1_info.length.charAt(i); 
      if(ch !=' ' && ch !='.') return false; 

     } 

更好地解釋什麼是怎麼回事。該功能可以將我的主函數被調用來彈出一個窗口,顯示應任何已作出的所有錯誤(if語句中創建的,它不工作),我else語句我有這個

else { 

     field01=field01.substring(0).toUpperCase(); 

     return true;     // No errors - return to browser and submit form 
     } 
    }         // End of main function 

有啥現在發生的情況是,如果輸入小寫字母,表單將不會接受它,但是如果字母輸入大寫字母,表單將接受它,它將在cgi中顯示名稱。我不知道如何解決這個問題,用戶可以輸入小寫字母,它應該接受,但在cgi中應該改爲大寫,這就是爲什麼.toUpperCase()...

謝謝尋求幫助!

+0

你的意思是由正則表達式是不允許的? – kapa 2012-04-06 16:39:03

+0

@bažmegakapa它可能是一個編程作業 – keune 2012-04-06 16:47:38

+0

我的教授不希望我們使用正則表達式,因爲他說「它不會教你如何用JavaScript編寫代碼」。所以我一直在尋找網絡來嘗試找到一些能教會我如何去做我所要求的或者有一個例子或者什麼的東西,大多數人使用正則表達式。我問過他---但他說他不能幫助... – Umeed 2012-04-06 17:06:13

回答

1
function validatefield01(errMessages){ 

var entry1_info = document.f1.sDate.value 

    //if character count is less than 4 or greater than 15. 
if ((entry1_info.length < 4) || (entry1_info.length > 15)) { 

    // error message to be displayed 
    errMessages += " <li>Minimum characters for Client Surname is 4 maximum 15\n"; 

    return false; 

} 

var word = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz-'"; 

    // Check input string validation. 
    for (var i = 0; i < entry1_info.length; i++) { 
     if (word.indexOf(entry1_info.charAt(i), 0) == -1) { 

     // error message to be displayed. 
     errMessages += "must use characters only, Apostrophe (') or hyphen (-) is acceptable.</li>\n"; 

     return false; 
     } 
    } 

document.f1.sDate.value = entry1_info.substring(0).toUpperCase(); 
return true; 

} 
相關問題