Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henriqued

[Resolvido] IE 8 erro em $("#").change

Recommended Posts

Boa tarde, estou fazendo uma aplicação onde o usuario poderá criar albuns, e nesta aplicação o usuario poderá escolhar se o album será de uma aplicação memorando ou noticia atravé de um select, por sua vez o select irá entrar em ação de acordo com o valor escolhido através do $("#").change,funciona perfeitamente no Firefox 2 e3, safari porém no IE da erro. segue abaixo meu codigo.:

Form

a parte que deveria funcionar e não funciona é o $('#ID_TIPO_ALBUM').change(function()

<?php
class App_View_Form_Album extends Lib_Html_Form
{
   protected $_separator = 'Li';
   protected $_container = 'Ul';
   function __construct()
   {

       $usuario = unserialize($_SESSION['IDENTITY']);
       $css = new Lib_Html_Link();
       $css->setParam('type','text/css');
       $css->setParam('rel','stylesheet');
       $css->setParam('href','css/jquery.autocomplete.css');
       $css->setParam('media','screen');
       $this->addElement($css);

       $inc = new Lib_Html_Script();
       $inc->setParam('src', 'scripts/jquery.autocomplete.js');
       $inc->setParam('type', 'text/javascript');    
       $this->appendContent($inc->make());


       $scr = new Lib_Html_Script();
       $scr->setParam('type', 'text/javascript');    
       $scr->setContent("    

       $().ready(function() {
       function findValueCallback(event, data, formatted) {
           $('#load').html( !data ? 'Nenhuma cidade encontrada!' : '');
           $('#TX_ID_PUBLICACAO').val(!data ? '' : '' + data[1])

       }        
       function formatItem(row) {
           return row[0] + ' (<strong>id: ' + row[1] + '</strong>)';
       }
       function formatResult(row) {
           return row[0].replace(/(<.+?>)/gi, '');
       }

       function muda(value){
           alert('Cooc');
       }

       $('#ID_TIPO_ALBUM').change(function() {
           if($(this).val() == '1'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Noticia&act=autoComplete', {
                   width: 260,
                   selectFirst: true,
                   });
           }else if ($(this).val() == '3'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').attr('disabled','true');
           }else if ($(this).val() == '4'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Memorando&act=autoComplete', {
                   width: 260,
                   selectFirst: true
                   });
           }
       });

       $(':text, textarea').result(findValueCallback).blur(function() {
           $(this).search();
       });
       /*$('#scrollChange').click(changeScrollHeight);*/

       })");
       $this->appendContent($scr->make());

       $h1 = new Lib_Html_H3();
       $h1->setParam('id', 'titulo');
       $h1->setContent("Cadastro de Álbuns");
       $h1->setParam('style', 'border-bottom:1px #990000 solid');
       $h1->appendContent('<br />');
       $this->addElement($h1);
       $this->addNewElement('InputHidden', '', array('name' => 'ID_ALBUM', 'id' => 'ID_ALBUM'));
       $this->addNewElement('InputHidden', '', array('name' => 'ID_PASTA', 'id' => 'ID_PASTA', 'value' => $alb[0]["ID_PASTA"]));
       $this->addNewElement('InputHidden', '', array('name' => 'UPDATE', 'id' => 'UPDATE', 'value' => $_POST['UPDATE']));
       $this->addNewElement('InputText','Descrição', array('name' => 'DESCRICAO', 'id' => 'DESCRICAO'), 'required');
$this->addNewCustomElement('TipoAlbumSelect', 'Tipo de Álbum : ', array('name' => 'ID_TIPO_ALBUM', 'id' => 'ID_TIPO_ALBUM','onchange'=>'muda(this.value)'), 'required');
       $this->addNewElement('InputText','Publicação', array('name' => 'TX_PUBLICACAO', 'id' => 'TX_PUBLICACAO','class' => 'campos ac_input', 'autocomplete' => 'off', 'disabled' => 'disabled', 'value' => $resp[0]["TX_PUBLICACAO"]));
       $this->addNewElement('InputHidden', '', array('name' => 'TX_ID_PUBLICACAO', 'id' => 'TX_ID_PUBLICACAO', 'value' => $alb[0]["ID_PUB_NOTICIA"]));
       $this->addNewElement('InputButton', '', array('name' => 'btn', 'id' => 'btn', 'value' => 'Enviar', 'onclick' => 'submitForm()'));
       $this->appendContent('<br />');

       $this->_params['name'] = 'Album_form';
       $this->_params['id'] = 'Album_form';
       $this->_params['method'] = 'post';
       $this->setSubmit('Sistema', 'Album', 'cadastrar', true, 'formGeral');
       parent::__construct();
   }
}
?>

 

já tentei mudar a forma de carregamento do javascript porém de nada adiantou..

 

desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, estou fazendo uma aplicação onde o usuario poderá criar albuns, e nesta aplicação o usuario poderá escolhar se o album será de uma aplicação memorando ou noticia atravé de um select, por sua vez o select irá entrar em ação de acordo com o valor escolhido através do $("#").change,funciona perfeitamente no Firefox 2 e3, safari porém no IE da erro. segue abaixo meu codigo.:

Form

a parte que deveria funcionar e não funciona é o $('#ID_TIPO_ALBUM').change(function()

<?php
class App_View_Form_Album extends Lib_Html_Form
{
   protected $_separator = 'Li';
   protected $_container = 'Ul';
   function __construct()
   {

       $usuario = unserialize($_SESSION['IDENTITY']);
       $css = new Lib_Html_Link();
       $css->setParam('type','text/css');
       $css->setParam('rel','stylesheet');
       $css->setParam('href','css/jquery.autocomplete.css');
       $css->setParam('media','screen');
       $this->addElement($css);

       $inc = new Lib_Html_Script();
       $inc->setParam('src', 'scripts/jquery.autocomplete.js');
       $inc->setParam('type', 'text/javascript');    
       $this->appendContent($inc->make());


       $scr = new Lib_Html_Script();
       $scr->setParam('type', 'text/javascript');    
       $scr->setContent("    

       $().ready(function() {
       function findValueCallback(event, data, formatted) {
           $('#load').html( !data ? 'Nenhuma cidade encontrada!' : '');
           $('#TX_ID_PUBLICACAO').val(!data ? '' : '' + data[1])

       }        
       function formatItem(row) {
           return row[0] + ' (<strong>id: ' + row[1] + '</strong>)';
       }
       function formatResult(row) {
           return row[0].replace(/(<.+?>)/gi, '');
       }

       function muda(value){
           alert('Cooc');
       }

       $('#ID_TIPO_ALBUM').change(function() {
           if($(this).val() == '1'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Noticia&act=autoComplete', {
                   width: 260,
                   selectFirst: true,
                   });
           }else if ($(this).val() == '3'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').attr('disabled','true');
           }else if ($(this).val() == '4'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Memorando&act=autoComplete', {
                   width: 260,
                   selectFirst: true
                   });
           }
       });

       $(':text, textarea').result(findValueCallback).blur(function() {
           $(this).search();
       });
       /*$('#scrollChange').click(changeScrollHeight);*/

       })");
       $this->appendContent($scr->make());

       $h1 = new Lib_Html_H3();
       $h1->setParam('id', 'titulo');
       $h1->setContent("Cadastro de Álbuns");
       $h1->setParam('style', 'border-bottom:1px #990000 solid');
       $h1->appendContent('<br />');
       $this->addElement($h1);
       $this->addNewElement('InputHidden', '', array('name' => 'ID_ALBUM', 'id' => 'ID_ALBUM'));
       $this->addNewElement('InputHidden', '', array('name' => 'ID_PASTA', 'id' => 'ID_PASTA', 'value' => $alb[0]["ID_PASTA"]));
       $this->addNewElement('InputHidden', '', array('name' => 'UPDATE', 'id' => 'UPDATE', 'value' => $_POST['UPDATE']));
       $this->addNewElement('InputText','Descrição', array('name' => 'DESCRICAO', 'id' => 'DESCRICAO'), 'required');
$this->addNewCustomElement('TipoAlbumSelect', 'Tipo de Álbum : ', array('name' => 'ID_TIPO_ALBUM', 'id' => 'ID_TIPO_ALBUM','onchange'=>'muda(this.value)'), 'required');
       $this->addNewElement('InputText','Publicação', array('name' => 'TX_PUBLICACAO', 'id' => 'TX_PUBLICACAO','class' => 'campos ac_input', 'autocomplete' => 'off', 'disabled' => 'disabled', 'value' => $resp[0]["TX_PUBLICACAO"]));
       $this->addNewElement('InputHidden', '', array('name' => 'TX_ID_PUBLICACAO', 'id' => 'TX_ID_PUBLICACAO', 'value' => $alb[0]["ID_PUB_NOTICIA"]));
       $this->addNewElement('InputButton', '', array('name' => 'btn', 'id' => 'btn', 'value' => 'Enviar', 'onclick' => 'submitForm()'));
       $this->appendContent('<br />');

       $this->_params['name'] = 'Album_form';
       $this->_params['id'] = 'Album_form';
       $this->_params['method'] = 'post';
       $this->setSubmit('Sistema', 'Album', 'cadastrar', true, 'formGeral');
       parent::__construct();
   }
}
?>

 

já tentei mudar a forma de carregamento do javascript porém de nada adiantou..

 

desde já agradeço.

 

Bom dia, gostaria apenas de informar que consegui resolver meu problema, o que estava dando erro era onde uso attr, então resolvi mudar minha funcção no onchange, removi todos os attrs, passei a utilizar o document.getElementByid().disabled=true|false, segue abaixo função modificada:

Função antiga

 

$('#ID_TIPO_ALBUM').change(function() {
           if($(this).val() == '1'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Noticia&act=autoComplete', {
                   width: 260,
                   selectFirst: true,
                   });
           }else if ($(this).val() == '3'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').attr('disabled','true');
           }else if ($(this).val() == '4'){
               $('#TX_PUBLICACAO').val('');
               $('#TX_PUBLICACAO').removeAttr('disabled');
               $('#TX_PUBLICACAO').autocomplete('?con=Memorando&act=autoComplete', {
                   width: 260,
                   selectFirst: true
                   });
           }
       });

Função Nova

$('#ID_TIPO_ALBUM').change(function() {
       if($(this).val() == '1'){
            var url = '?con=Noticia&act=autoComplete';
            document.getElementById('TX_PUBLICACAO').disabled=false;
       }else if ($(this).val() == '3'){
             var url = '';
             document.getElementById('TX_PUBLICACAO').disabled=true;
       }else if ($(this).val() == '4'){
              var url = '?con=Memorando&act=autoComplete';
              document.getElementById('TX_PUBLICACAO').disabled=false;
       }
       $('#TX_PUBLICACAO').val('');
       $('#TX_PUBLICACAO').autocomplete(url, {
          width: 260,
          selectFirst: true
       });
});

 

Agora esta funcionado corretamente no IE 8 e 7, Firefox e Safari, estes foram os que testei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.