我正在使用一些JavaScript來檢查可能的匹配數組的表單字段。取決於匹配用戶,他們被提供確認窗口並且依賴於結果表單被提交或者用戶被返回到頁面。此過程在Firefox和Chrome中按預期工作,但在IE和Opera中,另一個提交仍在觸發中。任何人都可以建議我如何解決這個問題?jQuery submit()在FF/Chrome中工作(如預期的那樣),但不在IE/Opera中,任何想法爲什麼?
爲了簡單起見,腳本被裁剪爲大多數數據。
$(function(){
var check = ["All", "array", "values"];
$('#Next').click(function(){
$(this).addClass('hit');
$('#Cancel').attr('disabled', 'disabled');
});
$('#Form').bind('submit', function(){
if($(this).find('.hit').attr('id')=='Next'){
$('#Next').removeClass('hit');
var match = $('input[name="WHAT"]', $('#idBothAddressesTable')).val().trim();
if(match.length==0){
var postCode = $('input[name="WHAT2"]', $('#idBothAddressesTable')).val().trim();
}
var matched = $.inArray(match, check);
if(matched != -1){
var ask = confirm("This is the case, proceed or cancel");
if(ask==true){
$.post('dowhat.php',{flag: 1}, function()){
$('#Form').unbind('submit').submit();
});
}
else{
('#Cancel').removeAttr('disabled');
return false;
}
}
}
});
});
Form實際上有兩個提交值。除此之外,這是非常基本的,爲了簡化又重新修剪了散裝。
<form action="nextpage.php" method="post" id="Form">
<input type="text" name="WHAT" />
<input type="text" name="WHAT2" />
<input type="submit" name="CANCEL" value="Cancel" id="Cancel" />
<input type="submit" name="NEXT" value="Next" id="Next" />
</form>
在firefox和chrome中,當有人遇到滿足ask == true critera時,這似乎就起作用了。 $ .post繼續,並提交表單,就像點擊「下一個」提交一樣。
但是,在IE和Opera中,$ .post發生,但表單被提交,就像點擊「取消」一樣。
任何人都可以向我解釋這一點,我似乎無法找到解決方案?
'$( '#表')'告訴你必須在其標識 '形式' 的一種形式。你能展示這個表單嗎? – falsarella