解答例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> 
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$("form").submit(function(){
		
		//エラーの初期化
		$("p.error").remove();
		
		//テキストフィールド、テキストエリア必須
		$(":text,textarea").filter(".validate").each(function(){
			//必須項目
			$(this).filter(".required").each(function(){
				if($(this).val() == ""){
					$(this).parent().prepend("<p class='error'>必須項目です</p>");
				}
			});

		});
		
		//テキストフィールド10文字以内
		$(":text").filter(".validate").each(function(){
			//必須項目
			$(this).filter(".limit").each(function(){
				if($(this).val().length > 10){
					$(this).parent().prepend("<p class='error'>10文字以内で入力してください</p>");
				}
			});

		});
		
		//テキストエリア100文字以内
		$("textarea").filter(".validate").each(function(){
			//必須項目
			$(this).filter(".limit").each(function(){
				if($(this).val().length > 100){
					$(this).parent().prepend("<p class='error'>100文字以内で入力してください</p>");
				}
			});

		});
		
		//ラジオボタン必須
		$(":radio").filter(".validate").each(function(){
			$(this).filter(".required").each(function(){
				if($(":radio[name="+$(this).attr("name")+"]:checked").size() == 0){
					$(this).parent().prepend("<p class='error'>選択してください</p>");
				}
			});
		});
		
		//セレクトボックス必須
		$("option:selected").parent().filter(".validate").each(function(){
			//必須項目
			$(this).filter(".required").each(function(){
				if($(this).val() == ""){
					$(this).parent().prepend("<p class='error'>必須項目です</p>");
				}
			});
		});
		
		//チェックボックス必須
		$(":checkbox").parent().each(function(){
			if($(":checkbox:checked",this).size() == 0){
				$(this).prepend("<p class='error'>1個以上選択してください</p>");
			}
		});

		if($("p.error").size() > 0){
			return false;
		}

	});
});
</script>
<style type="text/css">
em{
	color:#FF0000;
	margin:0 5px;
}
dt{
	margin:5px 0;
}
p.error{
	color:#FF0000;
	font-size:14px;
	font-weight:bold;
	margin:5px 0;
}
</style>
<body>
<form action="http://www.yahoo.co.jp/" method="POST">
	<dl>
		<dt>お名前<em>10文字以内</em></dt>
		<dd><input type="text" name="name" class="validate required limit"></dd>
		<dt>性別<em>必須</em></dt>
		<dd>
			<input type="radio" name="gender" value="男性" class="validate required">
			<label for="gender_man">男性</label>
			<input type="radio" name="gender" value="女性">
			<label for="gender_woman">女性</label>
		</dd>
		<dt>年齢<em>必須</em></dt>
		<dd>
			<select name="age" class="validate required">
				<option value="">選択してください</option>
				<option value="10代">10代</option>
				<option value="20代">20代</option>
				<option value="30代">30代</option>
				<option value="40代以上">40代以上</option>
			</select>
		</dd>
		<dt>スキル<em>1つ以上</em></dt>
		<dd>
			<input type="checkbox" name="html" value="HTML" class="validate">
			<label for="html">HTML</label>
			<input type="checkbox" name="css" value="CSS" class="validate">
			<label for="css">CSS</label>
			<input type="checkbox" name="javascript" value="JavaScript" class="validate">
			<label for="javascript">JavaScript</label>
			<input type="checkbox" name="php" value="PHP" class="validate">
			<label for="php">PHP</label>
		</dd>
		<dt>コメント<em>100文字以内</em></dt>
		<dd>
			<textarea name="comment" class="validate required limit"></textarea>
		</dd>
		<input type="submit" value="送信">
	</dl>
</form>
</body>
</html>

inserted by FC2 system