私はJavaScriptをかなり使い慣れています。私はチュートリアルをオンラインで使っていますが、phpで有効性を確認してJavaScriptを使って警告を出します。私はJavaScriptをいくつかのバリデーションを完了させたいと思っています。それから、PHPで検証します。ここでXHRを使用したJavaScriptによるフォーム検証
は、私は警告メッセージのためのdivを作成したフォームのコード
<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への呼び出しが悪い練習とみなされることがあると私は理解しているだけでなく、すべての値をハードコードしましたか?
これを動作させることはかなり厄介なものでしたので、少しホッジpodge場合、謝罪します。
こんにちはYaKさん、私が欲しいものですが、どうしたらいいですか?私はJavaScriptをインデックスファイルから外していますが、そこからすべてを行うべきですか? – Jcode
@Jcode遅れて申し訳ありませんが、答えを広げて "実装方法"の部分に答えています – YakovL
ところで@Jcode、jQueryを使いますか?特に、検証に失敗したときに送信しないようにしたい場合は、ここで多くの助けとなります – YakovL