HTTPPost が実行される前に、必要なフィールドが入力されていることを確認する jQuery を使用して定義されたカスタム バリデーターがあります。私のスクリプトは次のとおりです。
<script>
$(document).ready(function() {
$('#ContentProperties').hide();
$('#FileSubmit').hide();
});
$(function () {
$("input:file").change(function () {
var fileName = $(this).val();
if(fileName != null)
$('#FileSubmit').show();
$('#ContentProperties').show();
alert("File successfully chosen please enter required metadata below");
});
});
$(document).ready(function () {
$("#FileSubmit").click(function () {
var name = document.getElementById("name").value;
var author = document.getElementById("author").value;
var description = document.getElementById("description").value;
var uploadDate = document.getElementById("uploaddate").value;
var expiryDate = document.getElementById("expirydate").value;
var contentType = document.getElementById("contenttypeid").value;
var alertString = "";
if (name.length == 0) {
alertString += "NAME: You must enter a name for your content!\n"
}
if (author.length < 6) {
alertString += "AUTHOR: You must enter at least 6 characters for author!\n"
}
if (description.length < 20) {
alertString += "DESCRIPTION: You must enter a valid description of at least 20 characters !\n"
}
if (uploadDate.length < 8 || uploadDate.length > 10) {
alertString += "UPLOAD DATE: Date must be entered in format 01/01/2013 or 1/1/2013\n"
}
if (expiryDate.length < 8 || expiryDate.length > 10) {
alertString += "EXPIRY DATE: Date must be entered in format 01/01/2013 or 1/1/2013\n"
}
if (alertString.length > 0) {
alert(alertString)
event.cancelBubble = true;
event.returnValue = false;
event.preventDefault();
event.stopPropagation();
return false;
}
});
});
検証済みのフィールドを空白のままにして送信ボタンをクリックすると、エラー メッセージは正しく表示されますが、投稿を停止できません。jQueryを使用しているときにこれを行うにはどうすればよいですか? 以前は JavaScript のみを使用していましたが、以下を使用してバブリングを停止できました。
event.cancelBubble = true;
event.returnValue = false;
event.preventDefault();
event.stopPropagation();