2011-04-06 65 views
0

我有一個page1.php,我有一個fly.php。 page1.php是一個簡單的(常規)表單頁面,當用戶提交表單時,人們可以放置信息。如何暫停表單提交,爲最後一次驗證,在最後和釋放/觸發/繼續提交後?

  • 通過ajax它加載驗證碼模板,並要求驗證在飛行(直到這裏很好)。
  • onFly驗證後,我是否允許該.submit()繼續

問:How can i after .submit() pause for validatio此驗證碼的n和驗證全成後,恢復表單提交(這是保留)?

實施例:

1部分: page1.php中

$(document).ready(function() 
{ 
$('.callmeback').submit(function() 
{ 
    $.ajax({ 
     type : "GET", 
     url  : "/include/class/fly.php", 
     data : "a=b", 
     async : false, 
     beforeSend: function() 
     { 
      $(document.body).find('.blackwindow').remove(); 
      $(document.body).find('.nospam').remove(); 
     }, 
     complete: function() 
     { 
     },  
     success : function(msg) 
     { 
      $(document.body).append(msg); 
      $('.blackwindow').css({ 
       'opacity':'0.90' 
      }); 

      $('.nospam').find('input[type="button"]').live("click", function() 
      { 
       // final validation 
       var security= $('.nospam').find('#security').val(); 
       var random = $('.nospam').find('#random').val(); 

        if (random!=security) 
       { 
      alert ('Invalid captcha.'); 
      return false; 

       } else { 
      // Basically its second time? and return true?      
       } 

      }); 

     } 

    }); 

    //return false; 
}); 

}); 

<form method=post action=thanks.php class="callmeback"> 
<input type=text value=100.00 name=amount /> 
<input type=submit value=submit name=submit /> 
</form> 

第2部分:fly.php

<? require_once 'obj.php';?> 
.blackwindow { 
     position:fixed; 
     top:0px; 
     left:0px; 
     width:100%; 
     height:100%; 
     z-index:1000; 

     background-color:#000000; 
} 

.nospam { 
     position:fixed; 
     top:30%; 
     left:30%; 
     padding:12px; 
     border:solid 3px #686868; 
     background-color:#ffffff; 
     z-index:1001; 
} 
<div class="blackwindow"></div> 
<div class="nospam"> 
<div> 
<? 
$value = obj::getRandom();           
echo '<img src="include/class/return_img.php?number=' . $value . '" />'; 
echo "<input type='hidden' id='random' name='random' value='$value' />"; 
?>  
<div> 
*Please enter the above code below, to verify this request <br/> 
<input type="text" class="textbox" id="security" name="security" /> 
</div> 
</div> 
<div> 
<input type=button name=mybutton value="Verify" /> 
</div> 
</div> 

跟進(校對):

$(document).ready(function() 
{ 
$('.callmeback').find('input[type="button"]').live("click", function() 
{ 
    $.ajax({ 
     type : "GET", 
     url  : "/include/class/fly.php", 
     data : "a=b", 
     async : false, 
     beforeSend: function() 
     { 
      $(document.body).find('.blackwindow').remove(); 
      $(document.body).find('.nospam').remove(); 
     }, 
     complete: function() 
     { 
     },  
     success : function(msg) 
     { 
      $(document.body).append(msg); 
      $('.blackwindow').css({ 
       'opacity':'0.90' 
      }); 

      $('.nospam').find('input[type="button"]').live("click", function() 
      { 
       // final validation 
       var security= $('.nospam').find('#security').val(); 
       var random = $('.nospam').find('#random').val(); 

        if (random!=security) 
       { 
      alert ('Invalid captcha.'); 
      return false; 

       } else { 
      $('.callmeback').submit();      
       } 

      }); 

     } 

    }); 

    //return false; 
}); 

}); 
+0

可能重複的[暫停表單提交驗證](http://stackoverflow.com/questions/4205574/pause-form-submission-for-validation) – cHao 2011-04-06 20:54:26

+0

不,代碼是不一樣的。但是,期望的結果 - 在提交表單之前一直持續到其他驗證發生 - 完全相同。唯一的區別是驗證的性質。 – cHao 2011-04-07 02:55:35

+1

這個想法,原則(以及拖延提交的代碼)是相同的 - 驗證是唯一的主要區別,對於那些沒有確切問題的人來說,代碼是沒用的(即:誰不是你)。如果我們遵循你的邏輯,那麼我們不能關閉像「我怎樣才能暫停表單提交以顯示帶有確認頁面的新窗口?」這樣的問題,因爲你正在等待的東西是不同的。我不買它。 – cHao 2011-04-07 15:18:22

回答

4

最簡單的方法是使「提交」按鈕實際上不是一個<input type='submit'>按鈕,而只是一個標準button。如果驗證通過,您可以使用$('form').submit()或類似的方式手動提交論壇。

+0

是的,但在這種情況下,我必須有兩種形式的虛擬形式,從虛擬形式中我必須粘貼到最終形式併發布最終形式。 – YumYumYum 2011-04-06 18:58:07

+1

@ IamSon0fRaja - 爲什麼?只需要一個表格。當用戶按下''時,它將立即調用驗證碼。基於驗證碼驗證的結果,您可以繼續使用您的功能。這是在你的jQuery代碼中添加一個'if'塊的簡單方法;如果通過驗證,請提交。 – eykanal 2011-04-06 19:03:52

+0

@eykanal:我不認爲你可以這樣做你提到。它的1方向,page1.php是真實的形式,我需要用戶兩次提交最終表格。或者我可能不明白你的意思,你有沒有任何虛擬的例子,你在想什麼。 – YumYumYum 2011-04-06 19:07:57

相關問題