Если этот вопрос был дан ответ в другом месте, я извиняюсь (я проверял перед рукой, но не смог найти ответ).on submit не работает сценарий проверки
Проблема, кажется, что сценарий проверки не работает, когда я нажимаю представить.
Вот код:
window.onload = function() {
\t document.forms[0].onsubmit = validForm;
}
function validForm() {
\t var allGood = true;
\t var allTags = document.forms[0].getElementsByTagName("*");
\t for (var i=0; i<allTags.length; i++) {
\t \t if(!validTag(allTags[i])) {
\t \t \t allGood = false;
\t \t }
\t }
\t return allGood;
\t function validTag(thisTag) {
\t \t var outClass = "";
\t \t var allClasses = thisTag.className.split(" ");
\t \t for (var j=0; j<allClasses.length; j++) {
\t \t \t outClass += validBasedOnClass(allClasses[j]) + " ";
\t \t }
\t \t thisTag.className = outClass;
\t \t if (outClass.indexOf("invalid") > -1) {
\t \t \t thisTag.focus();
\t \t \t if (thisTag.nodeName == "INPUT") {
\t \t \t \t thisTag.select();
\t \t \t }
\t \t \t return false;
\t \t }
\t \t return true;
\t \t function validBasedOnClass(thisClass) {
\t \t \t var classBack = "";
\t \t \t switch(thisClass) {
\t \t \t \t case "":
\t \t \t \t case "invalid":
\t \t \t \t \t break;
\t \t \t \t case "reqd":
\t \t \t \t \t if(allGood && thisTag.value == "") {
\t \t \t \t \t \t classBack = "invalid";
\t \t \t \t \t }
\t \t \t \t \t classBack += thisClass;
\t \t \t \t \t break;
\t \t \t \t default:
\t \t \t \t \t classBack += thisClass;
\t \t \t }
\t \t \t return classBack;
\t \t }
\t }
}
input.invalid {
\t background-color: yellow;
\t border: 1px solid red!important;
}
<form action="#" id=quote-generator>
<input type=number step=1 placeholder=Distance id=distance class=reqd autofocus>
<input type=text value="Running Cost" id=fuelPrice onFocus="this.blur()" readonly><span id=aside title="This value is calculated by the AA & is updated every 3 months">*</span>
</form>
<input type=submit value="Submit" form=quote-generator onclick="formQuote()">
Вот fiddle.
formQuote() не определен, поэтому он показывает ожидаемую ошибку объекта –
и зачем вам нужен onclick? вы уже привязываете 'document.forms [0] .submit = validForm;' on window.load event? –