フォーム検証を実行しようとしていますが、動作していないようです。私の要素にIDがないため、 getElementsByName &(Robert Nymanによって書かれた)getElementsByClass機能JavaScriptフォームの検証+ IDなしの入力名に基づいてフォームの値を取得する
私のJS:どれsugge http://jsfiddle.net/calebo/rBnwh/
:ここ
window.onload = function() {
var feedbackForm = getElementsByClassName("formBuilder"),
feedbackName = document.getElementsByName("form-name")[0],
feedbackLocation = document.getElementsByName("form-location")[0],
feedbackEmail = document.getElementsByName("form-email")[0],
feedbackComment = document.getElementsByName("form-comment")[0];
feedbackForm.onsubmit = function() {
var errors, errorDiv, errorUL = [];
// check all the fields
if (!feedbackName.value.match(/\b\w+\b/)) { errors.push("Please enter your full name"); }
if (!feedbackLocation.value.match(/\b\w+\b/)) { errors.push("Please enter your location"); }
if (!feedbackEmail.value.match(/^([0-9a-zA-Z]+[\-._+&])*[0-9a-zA-Z_][email protected]([\-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/)) { errors.push("Please enter a correct email address"); }
if (!feedbackComment.value.match(/\b\w+\b/)) { errors.push("Please make a comment"); }
// if there are errors, display them and cancel submit
if (errors.length) {
errorDiv = document.querySelector('#feedback-errors') || appendDiv(feedbackForm, {id: 'feedback-errors', innerHTML: '<ul></ul>'});
errorUL = errorDiv.querySelector('ul');
errorUL.innerHTML = errors.map(function (v) {
return "<li>#{v}</li>";
}).join('');
return false;
}
// submit the form
return true;
};
}
は私のバイオリンは私のマークアップ& JSを示していますjsの書き方を改善する方法も歓迎されています。
ps:jQueryは許可されません。
少し話題外です。 jQueryのようなライブラリを使用する機会はありませんか?それはこの問題をずっと簡単にするでしょう:) – Pelshoff
残念ながら、jQueryの検証プラグインではできませんでした。 – calebo
http://jshint.com/ - > 'getElementsByClassName'が定義されておらず、 'appendDiv'が定義されていません。 – Incognito