Como Incrustar Javascript En Yii "indicadores De Miles Mientras Se Escribe"

Como incrustar javascript en yii antes de enviar la consulta (submit) en las vista en _form

Esto es lo que quiero ejemplo , ya que Chile no usamos comas :)

Si hay alguna extension que haga esto y se me haya pasado en la busqueda se agradece.

a.) El script está en la carpeta js fuera del protected


<script language="JavaScript">

//Código para colocar 

//los indicadores de miles mientras se escribe

function puntitos(donde,caracter){

	pat = /[\*,\+,\(,\),\?,\,$,\[,\],\^]/

	valor = donde.value

	largo = valor.length

	crtr = true

	if(isNaN(caracter) || pat.test(caracter) == true){

		if (pat.test(caracter)==true){ 

			caracter = "\" + caracter

		}

		carcter = new RegExp(caracter,"g")

		valor = valor.replace(carcter,"")

		donde.value = valor

		crtr = false

	}

	else{

		var nums = new Array()

		cont = 0

		for(m=0;m<largo;m++){

			if(valor.charAt(m) == "." || valor.charAt(m) == " ")

				{continue;}

			else{

				nums[cont] = valor.charAt(m)

				cont++

			}

		}

	}

	var cad1="",cad2="",tres=0

	if(largo > 3 && crtr == true){

		for (k=nums.length-1;k>=0;k--){

			cad1 = nums[k]

			cad2 = cad1 + cad2

			tres++

			if((tres%3) == 0){

				if(k!=0){

					cad2 = "." + cad2

				}

			}

		}

		donde.value = cad2

	}

}	

</script>



b.) Lo necesito en la views/monto/_form

Por lo cual e insertado la ruta en este formulario


<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/scripjavamiles.js"></script>

   C.)  línea que quiero modificar con el evento de java


No comprendo como insertar el código para que trabaje <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />

<?php echo $form->textFieldRow($model,'total_monto',array('class'=>'span5')); ?>

Bueno todo aporte se agradece desde ya

Hola daniel.

Si aún no lo solucionaste, espero que esto sea lo que buscas. Reemplaza el script js por este, solo tiene una correccion en la funcion puntitos "caracter = "\" + caracter" por "caracter = "\\" + caracter" y la llamada al evento con jquery.


$(document).ready(function(){

    $('#total_monto').keyup(function(){

        puntitos(this,this.value.charAt(this.value.length-1))

    });

});


function puntitos(donde,caracter){

        pat = /[\*,\+,\(,\),\?,\,$,\[,\],\^]/

        valor = donde.value

        largo = valor.length

        crtr = true

        if(isNaN(caracter) || pat.test(caracter) == true){

                if (pat.test(caracter)==true){ 

                        caracter = "\\" + caracter

                }

                carcter = new RegExp(caracter,"g")

                valor = valor.replace(carcter,"")

                donde.value = valor

                crtr = false

        }

        else{

                var nums = new Array()

                cont = 0

                for(m=0;m<largo;m++){

                        if(valor.charAt(m) == "." || valor.charAt(m) == " ")

                                {continue;}

                        else{

                                nums[cont] = valor.charAt(m)

                                cont++

                        }

                }

        }

        var cad1="",cad2="",tres=0

        if(largo > 3 && crtr == true){

                for (k=nums.length-1;k>=0;k--){

                        cad1 = nums[k]

                        cad2 = cad1 + cad2

                        tres++

                        if((tres%3) == 0){

                                if(k!=0){

                                        cad2 = "." + cad2

                                }

                        }

                }

                donde.value = cad2

        }

}

Ojo que no tiene los tags "<script>".

Y segundo llamas a la funcion desde la vista, en tu caso en el .form creo.


<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/puntosMil.js"></script>

Eso es todo.

Darril estoy bien con automatizar el ingreso de punto OK

de hecho ya tengo todos los código y estoy tratando de implementar YII una vez que tenga todo voy a posteare

me explico

1.- lo primero era lo de los puntos en forma automatica OK (js)

pero esto no hace nada sin el paso siguiente.

2.- quitar los puntos para luego almacenar y o realizar operaciones (suma, resta)

 después de investigar un poco por las web tengo un código funcionando que me realiza todo, pero en js + ajax + php


  Hay que pasear por  js - ajax para luego llegra a php <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' />


  Que yo sepa no encontre una extension que cumpliera mis requisitos <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' />

una vez tenga implementado muestro todo

Ok, si te sirve de algo, lo que tengo es un campo precio al cuál le apliqué lo que mencionabas de los "puntos", una ves que se envía el formulario le quito los puntos con


$model->precio = str_replace('.', '', $model->precio);

y con eso se guarda en la bd correctamente, listo para realizar cualquier tipo de operaciones, claro tuve que jugar un poquito con la validación del campo(expresiones regulares). Espero postees tu solución.