我對JavaScript非常陌生,我一直在線上使用教程,但他們似乎經常使用PHP進行驗證並使用JavaScript進行警告,我讓用戶xhr發佈數據的應用程序到服務器,但在此之前我想讓JavaScript完成一些驗證。然後我將重新驗證PHP。使用XHR進行JavaScript驗證使用XHR
這裏是表單代碼
<form id="booking" action="">
<span class="red">*</span>First Name:
<input type="text" name="firstName" id="firstName">
<br>
<span class="red">*</span>Last Name:
<input type="text" name="lastName" id="lastName">
<br>
<span class="red">*</span>Contact Number:
<input type="text" name="number" id="number">
<br>
Unit Number(optional):
<input type="text" name="unit" id="unit">
<br>
<span class="red">*</span>Street Number:
<input type="text" name="streetNumber" id="streetNumber">
<br>
<span class="red">*</span>Street Name:
<input type="text" name="streetName" id="streetName">
<br>
<span class="red">*</span>Suburb:
<input type="text" name="pickupSuburb" id="pickupSuburb">
<br>
Destination Suburb<span class="red">*</span>:
<input type="text" name="destinationSuburb" id="destinationSuburb">
<br>
Pick-Up Date and Time<span class="red">*</span>:
<input type="datetime-local" name="dateTime" id="dateTime">
<br>
<br>
<input type="button" value="Submit"
onclick="getData('bookingprocess.php','message', firstName.value, lastName.value, number.value, unit.value, streetNumber.value, streetName.value, pickupSuburb.value, destinationSuburb.value, dateTime.value)"/>
<input type="reset" value="Reset">
</form>
<div id="message">
</div>
我已經創造了警告信息覈實。
這裏是JavaScript
// file simpleajax.js
var xhr = createRequest();
function getData(dataSource, divID, firstName, lastName, number, unit, streetNumber, streetName, pickupSuburb, destinationSuburb, dateTime) {
if(xhr) {
var place = document.getElementById(divID);
var requestbody = "firstName="+encodeURIComponent(firstName)+"&lastName="+encodeURIComponent(lastName)+"&number="+encodeURIComponent(number)+"&unit="+encodeURIComponent(unit)+"&streetNumber="+encodeURIComponent(streetNumber)+"&streetName="+encodeURIComponent(streetName)+"&pickupSuburb="+encodeURIComponent(pickupSuburb)+"&destinationSuburb="+encodeURIComponent(destinationSuburb)+"&dateTime="+encodeURIComponent(dateTime);
xhr.open("POST", dataSource, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
place.innerHTML = xhr.responseText;
} // end if
} // end anonymous call-back function
xhr.send(requestbody);
} // end if
} // end function getData()
function checkForm(booking) {
var valid = true;
if(firstName.value.length <= 0) {
window.alert("Name is empty");
booking.firstName.focus();
return valid = false;
}
}
注意會有更多的驗證,我的問題是我怎麼能叫的驗證從形式,或直接從XHR,這是最好的做法是什麼?我知道從表單中調用XHR可能被認爲是不好的做法,以及我已經硬編碼了所有的值?
讓這個工作一直很麻煩,所以,如果它有點Hodge podge道歉。
嗨YaK,這就是我想要的,但我該怎麼做?我試圖讓JavaScript不在索引文件中,但是我應該從那裏做到這一切嗎? – Jcode
@Jcode對不起延遲,我擴大了答案,以便它回答「如何實現」部分 – YakovL
@Jcode順便說一下,你使用jQuery嗎?在這裏有很多幫助,特別是如果你想在驗證失敗時阻止提交 – YakovL