我有一個表單頁面,我打算使用Ajax進行提交。我的計劃是 1.檢查電子郵件已經存在使用Ajax 2.檢查口令一致 3.如果是的話,切換到另一個「屏幕」和 4.使用AjaxAjax回調未執行
我提交表單困惑,因爲驗證功能不運行。當密碼不匹配時,它既不切換屏幕也不警告。因此,表單也未提交。我的代碼低於
$('form input:last-child').click(function(e){
e.preventDefault();
var allFields = e.target.parentNode;
function validate() {
if (allFields.elements[3].value !== allFields.elements[4].value) {
return false; // If they don't match, return false
} else {
$('#form-div form').css('left', '-70%');
$('#confirm p').css('margin-left', '-12%'); // else switch screens
}
}
if (validate != false) {
$('#hidden').load("server_script.php"); // `hidden` is a hidden div somewhere on the page
} else
alert ("Passwords do not match");
});
我在想,如果他們不匹配,事件偵聽器的其餘部分將無法運行,因爲虛假的終止從該點的功能。所以我試着在事件監聽器之外創建一個validate函數的實例,並在click函數內部調用它,但是它不會因爲依賴變量而解析,所以我不確定如何去做這件事。
UPDATE 附帶相關的HTML。 (加成:正則表達式模式不匹配2首或更多個字母)
<div id=form-div>
<form method=POST action="" >
First Name: <br> <input type=text name=first_name pattern="[a-z]{2,}" required /> <br> <br>
Last Name: <br> <input type=text name=last_name pattern="[a-z]{2,}" required /> <br> <br>
Email: <span id=emailReport></span> <br> <input type=email name=email id=email required /> <br> <br>
Password: <br> <input type=password name=password required pattern=".{6,}" title="Password must be six or more characters" /> <br> <br>
Confirm password: <br> <input type=password name=password required /> <br> <br>
<input type=hidden name=sign_up_date />
<input type=submit value='sign up' />
</form>
<div id=confirm> <p>Some text</p> </div>
</div>
</div>
沒有相關的HTML其難度是任何援助 – RiggsFolly
什麼是'驗證!= false'? –
@RiggsFolly添加了html –