2011-06-06 61 views
0

我用HTML/CSS/PHP完成了一個簡單的,基於象棋的愛好項目。它根據類型,位置和顏色列出並顯示給定作品的可能移動。不過,該計劃並未考慮董事會中的任何其他部分。如何通過JavaScript驗證此表單?

http://freemusing.com/chess/

正如你可以看到,表單工作正常,有服務器端驗證。我的問題是我對JavaScript不夠熟悉,無法從頭開始爲表單的兩個文本字段翻譯服務器端驗證[爲清晰起見編輯]。有人可以幫助複製我的PHP驗證代碼在JavaScript中的兩個輸入?我不想使用任何框架,因爲我想最終精通JS。

任何幫助理解。

+5

我懷疑任何人都可以免費獲得一份大的工作。 – 2011-06-06 15:23:00

+0

如果你有它的工作,我建議你使用一些基於Ajax的驗證。它爲您節省了翻譯js中所有內容的麻煩。 – Arend 2011-06-06 18:09:15

+0

我應該更清楚;我只是試圖在提交值之前驗證JS中的兩個輸入值。我並不是想暗示我想重新編寫JS中的所有服務器端代碼(儘管我想最終嘗試這些代碼)。 – 2011-06-07 16:19:20

回答

1

好的,這是第一個字段的驗證碼。 (書面即興,在我的腦海它的工作原理,但現實生活中,有時吸加上我習慣了,現在使用jQuery,很難回到基礎。)

var validatePiece = function (value) { 
    var legalValues = " p pawn b bishop r rook n knight q queen k king "; 
    return legalValues.indexOf(" " + value + " ") !== -1; 
}; 

這樣稱呼它:

var isPieceValid = validatePiece(document.getElementById("txt-piece").value; 

您將不得不在表單的提交處理程序中調用此函數。這裏的處理程序:

var validateForm = function() { 
    var isPieceValid = validatePiece(document.getElementById("txt-piece").value); 
    var isSquareValid = validateSquare(...); 
    return isPieceValid && isSquareValid; 
}; 

和更改表單元素的定義上調用此提交:

<form action="chess_moves.php" method="get" onsubmit="return validateForm();"> 

我留下錯誤信息顯示爲一個簡單的練習留給讀者。

+0

感謝您的幫助。我會在這個週末嘗試一下。 – 2011-06-10 12:32:19