cm-chessboard

Example: Input enabled with move validation and promotion dialog

Input enabled for white. chess.js does the validation and answers with random moves.