私は文字列の配列を取得しています。配列に項目がある場合、私は一つのことをしたい、そうでなければ他のものをしたい。配列が空でないかどうかを調べる方法がわかりません。また、配列に項目がある場合でも、クロムデバッガでコードをステップ実行するときには、長さは0なので、formErrors.length > 0
は使用できません。jQuery - 配列が空か、属性を持っているかどうかを確認する
エラーを取得するためのコードは次のとおりです。これは正常に動作し、エラー文字列または空の配列の配列を返しますがあればエラーと他のがない場合
var formErrors = validateFormData(formData);
function validateFormData(data) {
var errors = [];
if (data["title"].length == 0) {
errors["title"] = "Project title required";
}
if (data["client"].length == 0) {
errors["client"] = "Client name required";
}
if (data["date"].length == 0) {
errors["date"] = "Date required";
} else if (!isValidDateFormat(data["date"])) {
errors["date"] = "Date format invalid - Format: dd/mm/yyyy";
}
if (data["status"] == "") {
errors["status"] = "Please select current status for this project";
}
if (data["type"] == "") {
errors["type"] = "Please select a project type";
}
if (data["extras"].length == 0) {
errors["extras"] = "You must select at least one extra for this project";
}
return errors;
}
は、その後、私は一つのことをやりたいです。しかし、これは私にとってはうまくいかないビットです。
if (formErrors !== {}) {
displayFormErrors(formErrors);
event.preventDefault();
}
else {
clearForm();
}
私はこれまでに複数の方法を試してきましたが、これまで何も機能していませんでした。どんな助けもありがとう、ありがとう!私は長さを引き起こすアレイ上.LENGTHを使用することはできません
EDITは、それがデータを持っている場合でも、0です。
私は人々が気の毒求めているかについて少し困惑している、私はここでは専門家ではない私は何をしようとしているのより良い理解を得るために、私の完全なコードです。
$(document).ready(function() {
$('#submit').on("click", onSubmitForm);
function onSubmitForm(event) {
clearErrorMessages();
var formData = getFormData();
var formErrors = validateFormData(formData);
if (formErrors) {
displayFormErrors(formErrors);
event.preventDefault();
}
else {
clearForm();
// Do other stuff
}
}
function clearForm() {
$('#title').val("");
$('#client').val("");
$('#date').val("");
$('#status').val("planning");
$('#description').val("");
$('.type').prop('checked', false);
$('.extra').prop('checked', false);
$('#title').focus();
}
function clearErrorMessages() {
$(".uk-text-danger").html("");
}
function getFormData() {
var data = [];
data["title"] = $('#title').val();
data["client"] = $('#client').val();
data["date"] = $('#date').val();
data["status"] = $('select#status option:selected').val();
data["description"] = $('#description').val();
if ($("input[name='type']:checked").length > 0) {
data["type"] = $("input[name='type']:checked").val();
}
else {
data["type"] = "";
}
data["extras"] = [];
$.each($("input[name='extras[]']:checked"), function(index, radio) {
data["extras"].push(radio.value);
});
return data;
}
function validateFormData(data) {
var errors = [];
if (data["title"].length == 0) {
errors["title"] = "Project title required";
}
if (data["client"].length == 0) {
errors["client"] = "Client name required";
}
if (data["date"].length == 0) {
errors["date"] = "Date required";
} else if (!isValidDateFormat(data["date"])) {
errors["date"] = "Date format invalid - Format: dd/mm/yyyy";
}
if (data["status"] == "") {
errors["status"] = "Please select current status for this project";
}
if (data["type"] == "") {
errors["type"] = "Please select a project type";
}
if (data["extras"].length == 0) {
errors["extras"] = "You must select at least one extra for this project";
}
return errors;
}
function displayFormErrors(errors) {
for (var field in errors) {
var errorElementId = field + "Error";
$('#' + errorElementId).html(errors[field]);
}
} });
申し訳ありませんが、あまりにも多くの場合、私は何をすべきか分かりません。
(== 0 array_name.length){/ *何かをする* /}場合だけであなたはおそらくあなたの配列がどのように見えるかを示すべきである – Cam
使用しています。 – Cam
なぜformerrors配列が必要ですか?配列の中に配列を挿入し、2番目の配列をチェックしますか?それは意味をなさない..ちょうどエラーを確認する[]あなたは必要ないformErrors – Konstantinos