2011-12-19 82 views
0

我正在使用cakephp 1.3和fancybox ..我已经成功地在fancybox中放置了一个表单。现在我想将光标集中到输入字段之一。我很厌倦了,不想下面jquery fancybox输入焦点

<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代码我尝试下面的事情

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

$('#answer').focus(); 
我script.But没有好结果

>可以在任何有一点指出我错了我的代码。提前感谢。

我的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(); 
}, 

希望它可以帮助

+0

感谢名单哥哥......我是坏的脚本 – jack

0

我做了选择ID是错误的。我从我用来弹出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')); ?>