2011-07-12 14 views
0

を使用して、ターゲット属性を設定するとき、私はIFRAME内のフォームを持って起きていない提出、私はコードフォームは、私はjqueryの

<script type="text/javascript"> 
var Path="<?= $this->url ?>" 
$(function() 
{ 
    vReg=0 
    $("#signin").submit(function() 
    { 
     if(vReg == 1) 
     { 
      return true; 
     } 
     else{ 
     var url = Path; 
     var data = {}; 
     $("input").each(function() 
     { 
      data[$(this).attr('name')] = $(this).val(); 
     }); 
     $("select").each(function() 
     { 
      data[$(this).attr('name')] = $(this).val(); 
     }); 
       $.post(url,data,function(resp) 
     { 
      vError="" 
      for(id in resp){ 
       oResp=resp[id]; 
       for(key in oResp){ 
        vError +=oResp[key]+"\n" 
       } 
      } 

      if(vError == ''){ 
       vReg=1; 
          $("#formid").attr('target','_top'); 
       $("#signin").submit(); 
           return true; 
      } 
      else{ 
          $("#formid").attr('target','_self'); 
       alert(vError) 
       } 
         return false; 
     },'json'); 

     return false; 
     } 
    }); 
}); 

</script> 

の以下の部分を持っている私の目的は、私は何のエラーを持っていない場合は、私はこの目標を適用します、ですそのページを親ページに送信するフォームをすぐに送信します。しかし、最初にフォーム送信をクリックするとtarget属性が取得され、もう一度、親ページにリダイレクトする2回目のクリックをクリックします。 初めて自分自身をクリックすると、それが発生する必要があります。

親切

+0

「エラー」という文字列がありますか、それとも実際のJavaScriptエラーを確認しようとしていますか? – pimvdb

+0

@pimvdbはいhave.Updated親切にチェック – mymotherland

+0

@pimvdb私はポストメソッドを使用してフォームを検証して、次にエラーを確認します – mymotherland

答えて

0

は最終的に私は、ボタンを使って、それを得た代わりの形でアクションを提出しても、コードの変更、

<script type="text/javascript"> 
var Path="<?= $this->url ?>" 
$(function() 
{ 
    vReg=0 
    $("#signinbtn").click(function() 
    { 
     if(vReg == 1) 
     { 
      return true; 
     } 
     else{ 
     var url = Path; 
     var data = {}; 
     $("input").each(function() 
     { 
      data[$(this).attr('name')] = $(this).val(); 
     }); 
     $("select").each(function() 
     { 
      data[$(this).attr('name')] = $(this).val(); 
     }); 
       $.post(url,data,function(resp) 
     { 
      vError="" 
      for(id in resp){ 
       oResp=resp[id]; 
       for(key in oResp){ 
        vError +=oResp[key]+"\n" 
       } 
      } 

      if(vError == ''){ 
       vReg=1; 
          $("#formid").attr('target','_top'); 
          $("#signin").submit(); 
          return true; 
      } 
      else{ 
          $("#formid").attr('target','_self'); 
          alert(vError); 
         return false; 
       } 

     },'json'); 

     //return false; 
     } 
    }); 
}); 

</script> 

を持つが、私はまだ提出する機能は、ここで働いていない理由を知らない助けます何か案が ?

+0

私はvregがこれまでと同じではないと思います。なぜなら、無名関数が2度目に呼び出されたときそれは範囲外です。ブレークポイントを挿入すると、それも表示されます。 – mrtsherman

関連する問題