/[suikacvs]/webroot/chuubu/2001/2-7/fuyu/HpbQuestion80.js
Suika

Contents of /webroot/chuubu/2001/2-7/fuyu/HpbQuestion80.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download) (as text)
Tue Aug 17 02:26:14 2004 UTC (20 years, 8 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: application/javascript
Sync with latest version

1 wakaba 1.1 //
2     // Licensed Materials - Property of IBM
3     // 5724D51
4     // (C) Copyright IBM Corp. 1995, 2003 All Rights Reserved.
5     //
6     /*
7     ■ イベントで呼び出す関数
8    
9     HpbELQInit() - BODY の onload で呼び出す
10     HpbELQCheck() - 送信ボタンで呼び出す
11     HpbELQReset() - リセットボタンで呼び出す
12    
13     */
14    
15     //
16     // GLOBAL DEFINITIONS
17     //
18     var HpbELQObj = null; // アンケート処理オブジェクトのインスタンス
19     var HpbELQ_FormName = "HPB_ELQ_QUESTION"; // アンケートFORMの名前
20     var HpbELQ_SubmitBtn = "HPB_ELQ_SUBMIT"; // 「送信」INPUTボタン名
21     var HpbELQMsg_NoData = "アンケート用のデータが定義されていません。\n回答は送信できません。";
22     var HpbELQMsg_OK = "";
23     var HpbELQMsg_AnsNotDefined = "回答が定義されていません。";
24     var HpbELQMsg_AnsMissing = "必須設問に回答してください。";
25    
26     //
27     // EXPORT FUNCTIONS
28     //
29     function HpbELQInit()
30     {
31     if(typeof HpbELQData == "object"){
32     HpbELQObj = new ELQuestionnaire(HpbELQData);
33     } else {
34     alert(HpbELQMsg_NoData); // No Data
35     }
36     }
37    
38     function HpbELQCheck()
39     {
40     if(HpbELQObj != null){
41     return HpbELQObj.doCheck();
42     } else {
43     alert(HpbELQMsg_NoData); // No Data
44     return false;
45     }
46     }
47    
48     function HpbELQReset()
49     {
50     if(HpbELQObj != null){
51     return HpbELQObj.doReset();
52     }
53     }
54    
55     //
56     // OBJECT
57     //
58     function ELQuestionnaire(data)
59     {
60     var missingElm;
61     // Attributes
62     this.data = data;
63    
64     this.doCheck = function()
65     {
66     var err_msg = HpbELQMsg_OK;
67     var nQ = this.data.questions.length;
68     missingElm = null;
69     for(var i=0; i<nQ; i++){
70     var objQ = this.data.questions[i];
71     if (objQ.mandatory == true) {
72     var id = this.data.idPrefix + (i+1).toString();
73     var func = eval("this.checkEach" + objQ.type);
74     if(typeof func == "function"){
75     var msg_each = func(this, objQ, id);
76     if (msg_each != HpbELQMsg_OK) {
77     var item = this.getQ(id + "_head");
78     if (item != null && typeof item.innerHTML != "undefined")
79     item = item.innerHTML;
80     else
81     item = id;
82     err_msg += (msg_each + ": " + item + "\n");
83     }
84     } else {
85     alert("回答を検査する関数がありません:checkEach" + objQ.type);
86     return false;
87     }
88     }
89     }
90     if (err_msg == HpbELQMsg_OK) {
91     // 送信ボタンを無効に
92     this.enableFormItem(HpbELQ_SubmitBtn, false);
93     return true;
94     } else {
95     alert(err_msg);
96     // 最初の未回答項目にフォーカスをあてる
97     if (missingElm != null) missingElm.focus();
98     return false;
99     }
100     }
101    
102     this.doReset = function()
103     {
104     this.enableFormItem(HpbELQ_SubmitBtn, true);
105     }
106    
107     this.getQ = function(id)
108     {
109     if( eval("typeof "+id) == "undefined" )
110     return null;
111     return eval(id);
112     }
113    
114     this.getFormItem = function(id)
115     {
116     return this.getQ(HpbELQ_FormName + "." + id);
117     }
118    
119     this.enableFormItem = function(name, f)
120     {
121     var item = this.getFormItem(name);
122     if (item != null)
123     item.disabled = !f;
124     }
125    
126     //-------------------
127     // check mandatories
128     this.checkEachSelection = function(doc, obj, id)
129     {
130     if(obj.single){
131     // Single Selection
132     var ansObj = doc.getFormItem(id);
133     if (ansObj != null) {
134     var count = 0;
135     for(var i=0; i<ansObj.length; i++) {
136     if(ansObj[i].checked)
137     count++;
138     }
139     if (count == 1)
140     return HpbELQMsg_OK; //ok
141     else {
142     if (missingElm == null) missingElm = ansObj[0];
143     return HpbELQMsg_AnsMissing;
144     }
145     } else
146     return HpbELQMsg_AnsMissing;
147     } else {
148     // Multiple Selection
149     var count = 0;
150     for(var i=1; i<=obj.n_selection; i++){
151     var ans = doc.getFormItem(id + "_" + i);
152     if (ans != null) {
153     if (ans.checked)
154     count++;
155     } else
156     return HpbELQMsg_AnsNotDefined;
157     }
158     if (count > 0)
159     return HpbELQMsg_OK; //ok
160     else {
161     if (missingElm == null) missingElm = doc.getFormItem(id + "_1");
162     return HpbELQMsg_AnsMissing;
163     }
164     }
165     }
166    
167     this.checkEachDescription = function(doc, obj, id)
168     {
169     var ans = doc.getFormItem(id);
170     if (ans != null) {
171     if (ans.value != "")
172     return HpbELQMsg_OK; //ok
173     else {
174     if (missingElm == null) missingElm = ans;
175     return HpbELQMsg_AnsMissing;
176     }
177     } else
178     return HpbELQMsg_AnsNotDefined;
179     }
180    
181     }
182    

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24