[英]How to resolve this conflict with jQuery
任何人都可以通過我的JavaScript驗證幫助我解決此沖突嗎?
該表格未提交。 但是,如果我刪除onsubmit="return btnSubmitPD_OnClick()
它將正確地重定向表單,但是我當然需要該函數。
這是我的代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#Submit').click(function() {
var emailVal = $('#email').val();
$.post('checkemail.php', {'email' : emailVal}, function(data) {
if(data=='exist') {
alert('in'); return false;
}else{
$('#form1').submit();
}
});
});});
</script>
<script type="text/javascript">
function appIsEmail(str){
var at="@";
var dot=".";
var lat=str.indexOf(at);
var lstr=str.length;
var ldot=str.indexOf(dot);
if (str.indexOf(at)==-1) return false;
if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
if (str.indexOf(at,(lat+1))!=-1) return false;
if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
if (str.indexOf(dot,(lat+2))==-1) return false;
if (str.indexOf(" ")!=-1) return false;
return true;
}
function btnSubmitPD_OnClick(){
frmReg = document.getElementById("form1");
if (!appIsEmail(frmReg.email.value)){
alert("Please enter a valid email address!");
frmReg.email.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="view.php" onsubmit="return btnSubmitPD_OnClick()">
<p>
<input type="text" name="email" id="email" />
</p>
<p>
<input type="button" name="Submit" id="Submit" value="Submit" />
</p>
</form>
</body>
</html>
幾件事:
最好將一個Submit事件綁定到您的表單上,而不是在您的Submit按鈕上單擊一個click事件,這是為了解決用戶在電子郵件文本字段上按Enter的情況:
$('#form1').submit(function() { // change from $('#Submit').click
然后在新的submit
處理程序內,調用調用電子郵件驗證方法:
var emailVal = $('#email').val();
if(btnSubmitPD_OnClick() === false) return false;
然后,為避免無限submit
循環,您需要更改:
else{
$('#form1').submit();
}
至
else{
$('#form1')[0].submit(); // native submit on form element
}
還是mplungjan在他的評論中指出,只需更改您的
<input type="button" name="Submit" id="Submit" value="Submit" />
使用type="submit"
<input type="submit" name="Submit" id="Submit" value="Submit" />
並添加
if(btnSubmitPD_OnClick() === false) return false;
在致電$.post
之前
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.