Yii Framework Forum: Gimana cara nambahin behaviour "Enter" untuk pindah kolom isian? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Gimana cara nambahin behaviour "Enter" untuk pindah kolom isian? Rate Topic: -----

#1 User is offline   munemune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 07-November 09

Posted 07 November 2009 - 06:30 AM

Di aplikasi web based udah pasti cara untuk pindah kolom isian pake "Tab". Cara untuk pindah kolom isian pake "Enter" gwa bisa tapi terbatas pada page php biasa atau html.

Ada yang tau ga caranya ??

(dugaan sementara sih harus override CHtml::activeTextField() tapi gimana caranya??)

Btw ini kode javascriptnya untuk pindah kolom pake enter di php biasa :

function tabE(obj,e){ 
  var e=(typeof event!='undefined')?window.event:e;// IE : Moz 

  if(e.keyCode==13){ 
     var ele = document.forms[0].elements; 

  for(var i=0;i<ele.length;i++){ 
      var q=(i==ele.length-1)?0:i+1;// if last element : if any other 
  if(obj==ele[i]){ele[q].focus();break} 
} 
return false; 
} 
}


Lalu ditextfield ato button ditambah kode onkeypress="return tabE(this,event)", contoh :

<input type="text" onkeypress="return tabE(this,event)">


Trims untuk perhatiannya.
0

#2 User is offline   omarxp 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 17
  • Joined: 12-February 10
  • Location:Yogyakarta

Posted 12 February 2010 - 12:27 PM

masih newbie, belum tau caranya, hehehe :D
0

#3 User is offline   nasrul 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 98
  • Joined: 14-April 09
  • Location:Sorowako - Indonesia

Posted 14 February 2010 - 08:38 AM

urutan langkahnya:
  • letakkan script js.
    untuk menyisipkan script external bisa lihat di sini
  • tambahkan atribut / htmloptions pada komponen, misal pada textbox berikut:
    <?php echo CHtml::activeTextField($model,'name',array("onkeypress"=>"return tabE(this,event)")); ?>


sedikit modifikasi pada halaman view/contact.php
<script type="text/javascript">
function tabE(obj,e){ 
  var e=(typeof event!='undefined')?window.event:e;// IE : Moz 

  if(e.keyCode==13){ 
     var ele = document.forms[0].elements; 

  for(var i=0;i<ele.length;i++){ 
      var q=(i==ele.length-1)?0:i+1;// if last element : if any other 
  if(obj==ele[i]){ele[q].focus();break} 
} 
return false; 
} 
}
</script>

<?php
$this->pageTitle=Yii::app()->name . ' - Contact Us';
$this->breadcrumbs=array(
	'Contact',
);
?>

<h1>Contact Us</h1>

<?php if(Yii::app()->user->hasFlash('contact')): ?>

<div class="success">
	<?php echo Yii::app()->user->getFlash('contact'); ?>
</div>

<?php else: ?>

<p>
If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
</p>

<div class="form">

<?php echo CHtml::beginForm(); ?>

	<p class="note">Fields with <span class="required">*</span> are required.</p>

	<?php echo CHtml::errorSummary($model); ?>

	<div class="row">
		<?php echo CHtml::activeLabelEx($model,'name'); ?>
		<?php echo CHtml::activeTextField($model,'name',array("onkeypress"=>"return tabE(this,event)")); ?>
	</div>

	<div class="row">
		<?php echo CHtml::activeLabelEx($model,'email'); ?>
		<?php echo CHtml::activeTextField($model,'email',array("onkeypress"=>"return tabE(this,event)")); ?>
	</div>

	<div class="row">
		<?php echo CHtml::activeLabelEx($model,'subject'); ?>
		<?php echo CHtml::activeTextField($model,'subject',array('size'=>60,'maxlength'=>128,"onkeypress"=>"return tabE(this,event)")); ?>
	</div>

	<div class="row">
		<?php echo CHtml::activeLabelEx($model,'body'); ?>
		<?php echo CHtml::activeTextArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>
	</div>

	<?php if(extension_loaded('gd')): ?>
	<div class="row">
		<?php echo CHtml::activeLabelEx($model,'verifyCode'); ?>
		<div>
		<?php $this->widget('CCaptcha'); ?>
		<?php echo CHtml::activeTextField($model,'verifyCode',array("onkeypress"=>"return tabE(this,event)")); ?>
		</div>
		<div class="hint">Please enter the letters as they are shown in the image above.
		<br/>Letters are not case-sensitive.</div>
	</div>
	<?php endif; ?>

	<div class="row submit">
		<?php echo CHtml::submitButton('Submit'); ?>
	</div>

<?php echo CHtml::endForm(); ?>

</div><!-- form -->

<?php endif; ?>

0

#4 User is offline   saebaryo 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 74
  • Joined: 13-October 10
  • Location:jogjakarta - Indonesia

Posted 13 December 2010 - 05:28 AM

meski kasusnya beda, cukup mendapat pencerahan nih.:rolleyes:
everything must standing on balance
0

#5 User is offline   -=YiieRz=- 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 177
  • Joined: 27-October 10
  • Location:Jakarta

Posted 14 December 2010 - 09:28 PM

menarik topicnya ... good idea untuk dipakai di beberapa form aplikasi.
belajar itu modal utama, tanpa percobaan itu tak akan berhasil. berdoa itu membuat kita percaya diri. YiieRz-SdgBlajar
www.yiiframework.com
0

#6 User is offline   aqge 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 188
  • Joined: 02-September 10
  • Location:Indonesia

Posted 22 December 2010 - 05:05 AM

Kok pindah pake Enter? bukannya ini sama dengan submit, kenapa fungsi ini harus di overwrite menjadi pindah kolom?

pun kalo pindah kolom, IMHO seharusnya solusiny bukan per field/ item dari form,
kalo tidak salah ada jQuery untuk menjadikan form menjadi ajax, artinya semua jenis form kalo kena fungsi ini akan jadi ajax secara keseluruhan.

nah dengan ide yang sama kenapa tidak dibuat class jQuery yang jika di kenakan di form, maka otomatis semua fieldnya mendetek enter sebagai pindah kolom, bukan nya ini solusi lebih universal.

tapi kalo ane tetep pada pendapat sebaiknya jangan di ganti fungsi enter sebagai submit menjadi tab (CMIIW)
Best Regard
Tidak ada coding yang salah
Yang ada hanyalah Coding yang lebih baik
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users