我有一個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;
});
});
可能重複的[暫停表單提交驗證](http://stackoverflow.com/questions/4205574/pause-form-submission-for-validation) – cHao 2011-04-06 20:54:26
不,代碼是不一樣的。但是,期望的結果 - 在提交表單之前一直持續到其他驗證發生 - 完全相同。唯一的區別是驗證的性質。 – cHao 2011-04-07 02:55:35
這個想法,原則(以及拖延提交的代碼)是相同的 - 驗證是唯一的主要區別,對於那些沒有確切問題的人來說,代碼是沒用的(即:誰不是你)。如果我們遵循你的邏輯,那麼我們不能關閉像「我怎樣才能暫停表單提交以顯示帶有確認頁面的新窗口?」這樣的問題,因爲你正在等待的東西是不同的。我不買它。 – cHao 2011-04-07 15:18:22