Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

<input type='reset' />

で作られるリセットボタンはフォーム内のinputタグやselectタグの値をvalueに戻してくれる。
valueに入ってる値を無視して、とりあえず空にして欲しかったので、関数を書いた。

/**
 * 指定したフォームの入力を空の設定する
 *
 * @method resetFormValues
 * @param string formName フォームのname属性
 */
function resetFormValues(formName){
    var form = document.forms[formName];
    var length = form.length;
    for(var i=0; i<length; ++i){
        switch(form[i].nodeName.toLowerCase()){
            case 'input':
                clearHtmlInput(form[i]);
                break;
            case 'select':
                form[i].selectedIndex = 0;
                break;
        }
    }
    
    /**
     * inputタグ用の処理
     */
    function clearHtmlInput(input){
        switch(input.type){
            case '':
            case 'text':
            case 'file':
            case 'password':
                input.value = '';
                break;
            case 'checkbox':
            case 'radio':
                input.checked = false;
                break;
        }
    }
};

まだ対応ができてないパターンがあるかもしれない。ってか眠い。