2011-12-19 20 views
0

私はcakephp 1.3とfancyboxを使用しています。私はfancybox.Nowに入力フィールドの1つにカーソルを集中したいフォームを配置することができました。私はどんなことができます>私は私のscript.Butなし良い結果で物事jquery fancyboxの入力フォーカス

'onComplete' : function() { 
       $('#fancybox-frame').contents().find('#answer').focus(); 
      }, 

$('#answer').focus(); 

を、次の試してみました

<script type="text/javascript"> 
jQuery(document).ready(function() { 
//document.getElementById('frmname.answer').focus(); 
jQuery("a#answer").fancybox({ 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'elastic', 
     'speedIn' : 600, 
     'speedOut' : 200, 
     'overlayShow' : false, 
     'href' : this.href, 
}); 

}); /* */ 
</script> 

の下に与えられた多くのthing.Myコードをしようとするのはかなり疲れています私のコードでやっている間違っていることを指摘しています。事前に感謝します。

マイfancyboxの内容は次のようである:

<div style='display:none'> 
    <div id='reply'> 

     <h1>Reply For <?php echo $offer['OfferBoard']['headline'] ?></h1> 


     <ul class="nrml_list" > 

       <?php echo $this->Form->create('OfferAnswer',array('id'=>'frm','name'=>'frmname'), array('action' => 'reply/'.$offer['OfferBoard']['id'],'inputDefaults'=> array('label'=>false))); ?> 


       <li> 
        <div class='ulabel' style="float:right;" >Reply Text</div> 
        <div> 
         <div class="left"><?php echo $form->textarea('answer',array('class'=>'tarea1','label'=>FALSE,'id'=>'answer')); ?></div> 
         <div class="clear"></div> 
         </div> 
       </li> 

       <li> 
        <div class='ulabel' ></div> 
        <div> 
         <div class="left"><?php 
           $attributes=array('type'=>'checkbox','div'=>false,'value' => '1','hiddenField' => false,'label'=>FALSE); 
           echo $this->Form->input('copy_to',$attributes)." Send Copy "; 
         ?></div> 
         <div class="clear"></div> 
         </div> 
       </li> 



     </ul> 
      <?php echo $this->Form->end('Reply'); ?> 



    </div> 

答えて

3

試してみてください。

 
//without quotes in onComplete, this worked for me 
onComplete: function() { 
    $('#answer').focus(); 
}, 

が、それは私がセレクタIDでミスをした

+0

ありがとうの兄弟が...私はスクリプトに悪いですよ – jack

0

お役に立てば幸いです。私はfancyboxをポップアップするために使用したリンクとセレクタフィールドの両方から同じIDを使用していました。つまり、answerです。 フォームフィールドIDの名前をans ...に変更しました。そして感謝@Sudhirは、 正しいコードは以下の通り:

<script type="text/javascript"> 
jQuery(document).ready(function() { 
//document.frm.elements['data[OfferAnswer][answer]'].focus(); 
jQuery("a#answer").fancybox({ 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'elastic', 
     'speedIn' : 600, 
     'speedOut' : 200, 
     'overlayShow' : false, 
     'href' : this.href, 
     onComplete : function() { 
        $('#ans').focus(); 
         }, 
}); 

}); /* */ 
</script> 

新しいフォーム要素は次のとおりです。

<?php echo $form->textarea('answer',array('class'=>'tarea1','label'=>FALSE,'id'=>'ans')); ?> 
関連する問題