0

スクリプトに問題があります。ドロップダウン リストからカナダを選択すると、テキスト ボックスが追加されるはずですが、何も追加されません。

<style>
          #color {display:none;}
       </style>


       <script>
          (function(d){
             var options={
                val:'Canada',
                sel_id:'country',
                hid_id:'color'
             };
             var browser={
                modern:function(){
                   var method=null;
                   if(d.addEventListener) {
                      method=['DOMContentLoaded',true];
                   } else if(d.attachEvent) {
                      method=['readystatechange',false];
                   }
                   return(method);
                },
                addEvent:function(elem,event,func){
                   if(this.modern()[1]) {
                      elem.addEventListener(event,func,false);
                   } else {
                      elem.attachEvent('on'+event,func);
                   }
                }
             };
             var load=browser.modern()[0];
             var modern=browser.modern()[1];
             var init=function(){
                if((!modern && d.readyState=='complete') || modern) {
                   var select=d.getElementById(options.sel_id);
                   var input=d.getElementById(options.hid_id);
                   browser.addEvent(select,'change',function(){
                      var val=this.value;
                      var display=(val==options.val) ? 'block' : 'none';
                      input.style.display=display;
                   });
                }
             };
             browser.addEvent(d,load,init);
          })(document);
       </script>

これは JavaScript 関数で、以下は HTML コードです。

<tr> 
                                            <td height="22" class="bodytxt" id="color">
                                                <font size="2" face="Geneva, Arial, Helvetica, sans-serif">Date of Birth </font>
                                            </td>

                                            <td height="22" class="bodytxt" id="color">
                                                <input type="text" size="20"  name="color" value="<?=$_REQUEST['dob']?>" />


</td></tr>

私が直面している問題は、ここでライブで見ることができます....

http://www.sunno.com/medical/clients/test.html

4

1 に答える 1

0

あなたの HTML は無効です。複数の要素に同じ ID を使用することは想定されていません。使用document.getElementById()すると、そのうちの 1 つ (ほとんどのブラウザーでは最初のもの) のみが検出されます。そのメソッドは要素の取得 (単数) であり、要素の取得 (複数) ではないことに注意してください...

そのため、デモページにラベルは表示されますが、テキストボックスは表示されません(「何も追加していません」という質問の声明とは対照的です)。

行全体を表示または非表示にできるように、両方の項目を含む要素にを移動しid="color"てみませんか?<tr>

于 2012-12-09T11:18:30.573 に答える