2012-04-09 13 views
0

初めてダイアログを開いたときにダイアログを作成していますが、再度開いてみると、作成した関数のクリック動作しません。これは私のコードです、それはすべてonready関数です。私は入力フィールドを無効にしてフォーカスを与えようとしました。どうもありがとう。jQueryUIダイアログの再オープン入力テキストが無効になっていません

$("#rdoAddressN").click(function(){ 
    var html; 
    html="<table>" 
       +"<tr>" 
        +"<td style='font-size: 14px;' align='center'><strong>D I R E C T O R I O</strong></td>" 
       +"</tr>" 
       +"<tr>" 
        +"<td align='center' nowrap>" 
        +"<input name='zipcodeType' id='zipcodeTypeCP' value='1' type='radio' style='margin: 10px'><strong>CP</strong>" 
        +"<input name='zipcodeType' id='zipcodeTypeCol' value='2' type='radio' style='margin: 10px'><strong>Colonia</strong>" 
        +"<input name='btnBuscarCP' id='btnBuscarCP' value='Buscar' type='button' style='margin: 10px'>" 
        +"</td>" 
       +"</tr>" 
       +"<tr>" 
        +"<td align='center'>" 
         +"<input autocomplete='off' name='zipcodeDialog' id='zipcodeDialog' class='zipcodeDialog' size='50' class='authInput' type='text' disabled='disabled' />" 
        +"</td>" 
       +"</tr>" 
       +"<tr>" 
         +"<td >" 
          +"<div style='width: 576px; opacity: 0.999999; display: none;' id='divResultsCP' align='center'>" 
          +"</div>" 
         +"</td>" 
        +"</tr>"; 

     +"</table>"; 

    var caja2 = $('<div title="Direccion de Codigos Postales"><p>'+html+'</p></div>'); 
    caja2.dialog({modal: true,show: 'fade',hide: 'fade',height:'auto',width:'auto'}); 
    $(":button").button(); 
    $('#zipcodeTypeCP').click(function(){ 
     $('.zipcodeDialog').remove("disabled"); 
     $('.zipcodeDialog').attr("disabled", true); 
     $('.zipcodeDialog').attr("disabled", false); 
     $('.zipcodeDialog').focus(); 
    }) 
    $('#zipcodeTypeCol').click(function(){ 
     $('.zipcodeDialog').remove("disabled"); 
     $('.zipcodeDialog').attr("disabled", true); 
     $('.zipcodeDialog').attr("disabled", false); 
     $('.zipcodeDialog').focus(); 
    }) 
    $('#btnBuscarCP').click(function(){ 
      if($('#zipcodeDialog').val().length>3){ 
      $("#divResultsCP").html('<img src="img/ajax-loader-big.gif" />') 
      $.ajax({ 
       data: "texto="+ $('#zipcodeDialog').val()+"&zipcodeType="+$('input:radio[name=zipcodeType]:checked').val() , 
       type: "post", 
       dataType: "json", 
       url: "ajax/cp.php", 

       success: function(data){ 
         switch(data.error){ 
         case undefined: 
           if(data.mensaje==undefined){ 
            $("#autocomplete_choices").html(''); 
            var tabla="<table class='cptable'>"; 
            tabla+="<tr >" 
             tabla+="<td ></td>"; 
             tabla+="<td>CP</td>"; 
             tabla+="<td>Colonia</td>"; 
             tabla+="<td>Municipio</td>"; 
             tabla+="<td>Ciudad</td>"; 
             tabla+="<td>Estado</td>"; 
            tabla+="</tr>" 

            for(index=0; index<data.length; index++) { 
             tabla+='<tr><td><a href=""> + </a></td><td>' + data[index].postal_code + '</td><td> ' + data[index].colony_name + '</td><td>'+ data[index].d_mnpio+'</td><td>'+ data[index].city_name+'</td><td> '+data[index].state_name+'</td></tr>' 
            } 
            tabla+="<table>" 
           }else{ 
            tabla=data.mensaje; 
            $("#divResultsCP").addClass("ui-state-highlight"); 
           } 
           $("#divResultsCP").html(tabla) 
           $("#divResultsCP").show() 
          break; 
         case 'Login': 
           $("#autocomplete_choices").html(''); 
           alert("Usuario No logueado"); 
          break; 
         default: 
           $("#autocomplete_choices").html(''); 
           $("#divResultsCP").html(data.error); 
           $("#divResultsCP").addClass("ui-state-highlight"); 
          break; 
        } 
       } 
       ,error: function (request, status, error) { 
        alert(request.responseText); 
       } 


      }); 
     } 
    }); 

})` 
+0

あなたのコードの残りの部分を投稿してください。 – j08691

+4

これはちょっとひどいですが、htmlをあなたのビューに置いてからjquery-uiのダイアログプロップを使って開始時に表示せず、必要に応じて開いて閉じるようにしてください – SpYk3HH

+0

http://jsfiddle.net/ maxing80/chQfL/ahi se ve el jsFiddle – maxing80

答えて

0

まあ、昼休みと私は誰もあなたにまともな答えを与えていない参照してください。私はあなたにjsFiddleを作った。これは、もっと簡単にやろうとしていることを達成する方法を示すかもしれない。そうでない場合は、jQueryとHTMLをうまく利用する方法を示す必要があります。あなたがやっているように、長いHTMLの文字列を作成することは、jQueryの「より多くのことを書いて、より少ないものを書く」という目的を完全に破っています。彼らはすでに頑張っています。あなたがする必要があるのは、スマートな仕事です。

See Working jsFiddle Here

-

(AJAX URLは私がコールする実際のPHPのコントローラを持っていけないので、作業が、私は成功コードをguestimated、あなたの地元のdevのにそれを適用した場合、それはまだ全く同じ動作するはずです)また、もし私が何を期待し、何が起こっているのかが分かっていれば、現実的には、私の実際の例でさえ約12ダースほどカットすることができます。それと私はjQueryの部分を理解するために "最も簡単"にしようとしましたが、HTMLを追加したり、他の要素を追加するなど、さまざまな方法があります。

+0

すごくありがとう、SpYk3HH ...素晴らしいです... !!!!!メキシコのSaludos – maxing80

+0

@ maxing80いいえいいえ問題はありません。私はa quepodríaser de ayudaのアレグロです。 – SpYk3HH

関連する問題