フォームの内容の変更を特定の要素に即反映

JavaScriptを使い、フォーム内のフォーム部品の値の変更を、特定の要素内に直ぐに出力させる方法。

実装例

【入力欄】
名前:
地域:
年齢:
コメント:
【出力欄】
名前:
地域:
年齢:
コメント:

実装例の動作について

「サンプル」の「【入力欄】」のフォーム部品の内容を変更すると、直ぐに「【出力欄】」に反映される。

ソースコード

JavaScript

<script type="text/javascript">
window.onload = function () {
    getValue();
    var $formObject = document.getElementById( "sampleForm" );
    for( var $i = 0; $i < $formObject.length; $i++ ) {
        $formObject.elements[$i].onkeyup = function(){
            getValue();
        };
        $formObject.elements[$i].onchange = function(){
            getValue();
        };
    }
    document.getElementById( "sampleOutputLength" ).innerHTML = $formObject.length;
}
function getValue() {
    var $formObject = document.getElementById( "sampleForm" );
    document.getElementById( "sampleOutputName" ).innerHTML = $formObject.formName.value;
    document.getElementById( "sampleOutputArea" ).innerHTML = $formObject.formArea.value;
    document.getElementById( "sampleOutputAge" ).innerHTML = $formObject.formAge.value;
    document.getElementById( "sampleOutputComent" ).innerHTML = $formObject.formComent.value;
}
</script>

HTML

<form id="sampleForm">
    【入力欄】
    <br />
    名前:<input type="text" name="formName" value="太郎">
    <br />
    地域:
        <select name="formArea">
            <option selected>関東</option>
            <option>東海</option>
            <option>関西</option>
        </select>
    <br />
    年齢:
        <select name="formAge">
            <option selected>10代</option>
            <option>20代</option>
            <option>30代</option>
        </select>
    <br />
    コメント:<textarea name="formComent">コメント</textarea>
    <br />
</form>
<div id="sampleOutput">
    【出力欄】
    <br />
    名前:<span id="sampleOutputName"></span>
    <br />
    地域:<span id="sampleOutputArea"></span>
    <br />
    年齢:<span id="sampleOutputAge"></span>
    <br />
    コメント:<span id="sampleOutputComent"></span>
    <br />
</div>

CSS

<style>
#sampleForm,
#sampleOutput {
    width: 500px;
    margin: 10px;
    padding: 10px;
    border: 1px solid gray;
    border-radius: 10px;
}
#sampleForm {
    background-color: #f0f8ff;
}
#sampleOutput {
    background-color: #00ffff;
}
#sampleForm * {
    margin: 0 0 7px 0;
    vertical-align: text-top;
}
</style>

スポンサード リンク

カテゴリー: JavaScript, フォーム, 逆引き パーマリンク