Cakephp 2.45 format text in input to include "-" between letters -
i have need make input box formatted so: "x-x-xx-xxxxx" type first x appear "x-" next entered "x-x-", , on, kind of phone number.
here current input: model:
function getallfflnums($userids=null) { $ffls=array(); $cond = array(); $cond['userfirearm.user_id']=$userids; if($userids) { $res = $this->find('list', array('conditions'=>$cond, 'fields'=>array('userfirearm.received_ffl_number') )); foreach($res $row) { $ffls=$res; } } return $ffls; }
controller:
$conditions = array(); if ($userid) { $conditions['userfirearm.user_id'] = $userid; } $sel_rffl=array(); $sel_rffl = $this->userfirearm->getallfflnums($this->request->data['userfirearm'] ['user_id'] = $userid); $this->set(compact('sel_rffl'));`
and view:
echo $this->form->input('received_ffl_number', array( 'empty' => 'enter vaild ffl number', 'label' => 'ffl number', 'options'=> $sel_rffl, 'id' => 'received_ffl_number', ));
any appreciated. jeff
if want happen on fly, need use javascript. should if want user visually see dashes convenience, don't use have data saved in database (you should use data molding in beforesave
method of model if want achieve). javascript solution (using jquery) this:
$('#received_ffl_number').keyup(function(event) { // add dashes after 1st, 3rd , 6th letter/digit if ( $('#received_ffl_number').val().length == 1 || $('#received_ffl_number').val().length == 3 || $('#received_ffl_number').val().length == 6 ) { // unless pressed key backspace or delete, append dash if (event.which != 8 && event.which != 46) { $(this).val($(this).val() + "-"); } } });
Comments
Post a Comment