同意にチェックを入れると、入力できるようになるフォーム。jQuery を使って作る方法。
実装例(サンプル)
実装例(サンプル)の動作について
「同意する」のチェックボックスにチェックを入れると、フォーム部品を有効にし、入力できるようにする。さらに、フォームをフェードインする。
「同意する」のチェックボックスのチェックを外すと、フォーム部品を無効にし、入力できないようにする。さらに、フォームをフェードアウトで半透明にする。
実装例(サンプル)のソースコード
JavaScript
<script type="text/javascript">
<!--
jQuery( function() {
jQuery( 'input[name=jquerySampleAgreement]' ) . change( function() {
jQuery( 'input[name=jquerySampleAgreement]' ) . closest( 'label' ) . css( {
backgroundColor: 'yellow',
} );
jQuery( 'input:checked[name=jquerySampleAgreement]' ) . closest( 'label' ) . css( {
backgroundColor: 'pink',
} );
var checked = jQuery( 'input[name=jquerySampleAgreement]' ) . prop( 'checked' );
if ( checked ) {
jQuery( '#jquery-smaple-form :input' ) . prop( 'disabled', false );
jQuery( '#jquery-smaple-form' ) . fadeTo( 500, 1 );
} else {
jQuery( '#jquery-smaple-form :input' ) . prop( 'disabled', true );
jQuery( '#jquery-smaple-form' ) . fadeTo( 500, 0.5 );
}
} ) . change();
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( 'input[name=jquerySampleAgreement]' ) . change( function() {
jQuery( 'input[name=jquerySampleAgreement]' ) . closest( 'label' ) . css( {
backgroundColor: 'yellow',
} );
jQuery( 'input:checked[name=jquerySampleAgreement]' ) . closest( 'label' ) . css( {
backgroundColor: 'pink',
} );
var checked = jQuery( 'input[name=jquerySampleAgreement]' ) . prop( 'checked' );
if ( checked ) {
jQuery( '#jquery-smaple-form :input' ) . prop( 'disabled', false );
jQuery( '#jquery-smaple-form' ) . fadeTo( 500, 1 );
} else {
jQuery( '#jquery-smaple-form :input' ) . prop( 'disabled', true );
jQuery( '#jquery-smaple-form' ) . fadeTo( 500, 0.5 );
}
} ) . change();
} );
// -->
</script>
CSS
<style>
<!--
#jquery-sample-agreement label {
margin: 5px 10px;
padding: 2px 5px;
border: 1px solid gray;
border-radius: 5px;
background-color: yellow;
font-size: 15px;
color: #303030;
cursor: pointer;
}
#jquery-smaple-form {
padding: 10px;
border: 1px solid gray;
border-radius: 10px;
background-color: #f0f0f0;
}
#jquery-sample-agreement p,
#jquery-smaple-form p {
margin: 5px;
}
#jquery-smaple-form span {
vertical-align: top;
}
#jquery-sample-agreement input,
#jquery-smaple-form input {
margin: 0;
}
#jquery-smaple-form label {
margin: 0 10px;
font-size: 15px;
color: #303030;
cursor: pointer;
}
-->
</style>
<!--
#jquery-sample-agreement label {
margin: 5px 10px;
padding: 2px 5px;
border: 1px solid gray;
border-radius: 5px;
background-color: yellow;
font-size: 15px;
color: #303030;
cursor: pointer;
}
#jquery-smaple-form {
padding: 10px;
border: 1px solid gray;
border-radius: 10px;
background-color: #f0f0f0;
}
#jquery-sample-agreement p,
#jquery-smaple-form p {
margin: 5px;
}
#jquery-smaple-form span {
vertical-align: top;
}
#jquery-sample-agreement input,
#jquery-smaple-form input {
margin: 0;
}
#jquery-smaple-form label {
margin: 0 10px;
font-size: 15px;
color: #303030;
cursor: pointer;
}
-->
</style>
HTML
<p id="jquery-sample-agreement">
<label>
<input type="checkbox" name="jquerySampleAgreement" />
同意する
</label>
</p>
<form id="jquery-smaple-form">
<p>
input:<input type="text" class="jquery-sample-switch-disabled" />
</p>
<p>
<span>textarea:</span><textarea class="jquery-sample-switch-disabled"></textarea>
</p>
<p>select:
<select>
<option>オプション</option>
<option>オプション</option>
</select>
</p>
<p>checkbox:
<label><input type="checkbox" /> 項目1</label>
<label><input type="checkbox" /> 項目2</label>
<label><input type="checkbox" /> 項目3</label>
</p>
<p>radio:
<label><input type="radio" name="jquerySmapleRadio" /> 項目1</label>
<label><input type="radio" name="jquerySmapleRadio" /> 項目2</label>
<label><input type="radio" name="jquerySmapleRadio" /> 項目3</label>
</p>
</form>
<label>
<input type="checkbox" name="jquerySampleAgreement" />
同意する
</label>
</p>
<form id="jquery-smaple-form">
<p>
input:<input type="text" class="jquery-sample-switch-disabled" />
</p>
<p>
<span>textarea:</span><textarea class="jquery-sample-switch-disabled"></textarea>
</p>
<p>select:
<select>
<option>オプション</option>
<option>オプション</option>
</select>
</p>
<p>checkbox:
<label><input type="checkbox" /> 項目1</label>
<label><input type="checkbox" /> 項目2</label>
<label><input type="checkbox" /> 項目3</label>
</p>
<p>radio:
<label><input type="radio" name="jquerySmapleRadio" /> 項目1</label>
<label><input type="radio" name="jquerySmapleRadio" /> 項目2</label>
<label><input type="radio" name="jquerySmapleRadio" /> 項目3</label>
</p>
</form>