Changeset 23172


Ignore:
Timestamp:
2013/08/30 21:28:19 (7 years ago)
Author:
pineray
Message:

#2342 JavaScript?のグローバルな宣言を減らす
フォーム関連の関数をリファクタリング.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/html/js/eccube.js

    r23170 r23172  
    194194        } 
    195195        if (ret) { 
    196             var formElement = $("form#" + form); 
    197             formElement.find("*[name=" + key + "]").val(val); 
    198             formElement.submit(); 
     196            var values = {}; 
     197            values[key] = val; 
     198            eccube.submitForm(values, form); 
    199199        } 
    200200        return false; 
     
    202202 
    203203    eccube.setValue = function(key, val, form) { 
    204         if (typeof form === 'undefined') { 
    205             form = eccube.defaults.formId; 
    206         } 
    207         var formElement = $("form#" + form); 
     204        var formElement = eccube.getFormElement(form); 
    208205        formElement.find("*[name=" + key + "]").val(val); 
    209206    }; 
    210207 
    211     eccube.changeAction = function(url) { 
    212         document['form1'].action = url; 
     208    eccube.changeAction = function(url, form) { 
     209        var formElement = eccube.getFormElement(form); 
     210        formElement.attr("action", url); 
    213211    }; 
    214212 
    215213    // ページナビで使用する。 
    216214    eccube.movePage = function(pageno, mode, form) { 
    217         if (form === undefined) { 
    218             form = eccube.defaults.formId; 
    219         } 
    220         var formElement = $("form#" + form); 
    221         formElement.find("input[name=pageno]").val(pageno); 
     215        var values = {pageno: pageno}; 
    222216        if (mode !== undefined) { 
    223             formElement.find("input[name='mode']").val(mode); 
     217            values.mode = mode; 
     218        } 
     219        eccube.submitForm(values, form); 
     220    }; 
     221 
     222    /** 
     223     * フォームを送信する. 
     224     * 
     225     * @param values 
     226     * @param form 
     227     */ 
     228    eccube.submitForm = function(values, form){ 
     229        var formElement = eccube.getFormElement(form); 
     230        if (values !== undefined && typeof values === "object") { 
     231            $.each(values, function(index, value) { 
     232                eccube.setValue(index, value, formElement); 
     233            }); 
    224234        } 
    225235        formElement.submit(); 
    226236    }; 
    227237 
    228     eccube.submitForm = function(values, form){ 
     238    /** 
     239     * フォームを特定してエレメントを返す. 
     240     * 
     241     * @param form 
     242     * @returns {*} 
     243     */ 
     244    eccube.getFormElement = function(form){ 
    229245        var formElement; 
    230246        if (form !== undefined && typeof form === "string" && form !== "") { 
     
    235251            formElement = $("form#" + eccube.defaults.formId); 
    236252        } 
    237         if (values !== undefined && typeof values === "object") { 
    238             $.each(values, function(index, value) { 
    239                 formElement.find("input,select").filter("[name='" + index + "']").val(value); 
    240             }); 
    241         } 
    242         formElement.submit(); 
     253        return formElement; 
    243254    }; 
    244255 
Note: See TracChangeset for help on using the changeset viewer.