所以我一直在查看代码,看看通过 javascript 可以实现什么。我有一个代码,当前检查表单是否有空元素,如果有空元素,则拒绝提交。问题是我尝试在元素为空时添加警报,如果元素不为空但它不起作用则添加警报。我似乎对 java 脚本知之甚少,无法对其进行编辑。
这是表格。忽略奇怪的类和 div 名称,它们是这样设置的,因为表单提交到谷歌文档电子表格。
<form class="quickemailform" action="https://docs.google.com/spreadsheet/formResponse?formkey=dGp3YUxCTGtWd251ZXVfOEtwc1hhWVE6MQ&ifq" method="post" target="hidden_iframe" onsubmit="submitted=true;" id="ss-form" name="frm1" onsubmit="InputChecker()">
<br>
<div class="errorbox-good">
<div class="ss-item ss-item-required ss-text">
<div class="ss-form-entry">
<label class="ss-q-title" for="entry_0">
<font class="formtitles">FULL NAME:</font>
</br>
<label class="ss-q-help" for="entry_0"></label>
<input type="text" name="entry.0.single" value="" class="ss-q-short" id="entry_0" size="42">
</div>
</div>
</div>
<div class="errorbox-good">
<div class="ss-item ss-item-required ss-text">
<div class="ss-form-entry">
<label class="ss-q-title" for="entry_1">
<font class="formtitles" id="compnam">COMPANY NAME:</font>
</br>
<label class="ss-q-help" for="entry_1"></label>
<input type="text" name="entry.1.single" value="" class="ss-q-short" id="entry_1" size="42">
</div>
</div>
</div>
<div class="errorbox-good">
<div class="ss-item ss-item-required ss-text">
<div class="ss-form-entry">
<label class="ss-q-title" for="entry_2">
<font class="formtitles" id="emailadd">EMAIL ADDRESS:</font>
<br>
<label class="ss-q-help" for="entry_2"></label>
<input type="text" name="entry.2.single" value="" class="ss-q-short" id="entry_2" size="42">
</div>
</div>
</div>
<div class="errorbox-good">
<div class="ss-item ss-item-required ss-paragraph-text">
<div class="ss-form-entry">
<label class="ss-q-title" for="entry_3">
<font class="formtitles" id="request">Your Request:</font>
<font class="fineprint">( SUMMARIZE IMPORTANT DETAILS )</font>
<br>
</label>
<label class="ss-q-help" for="entry_3"></label>
<textarea name="entry.3.single" cols="32" rows="10" class="ss-q-long" id="entry_3"></textarea>
</div>
</div>
</div>
<input type="hidden" name="pageNumber" value="0">
<input type="hidden" name="backupCache" value="">
<div class="ss-item ss-navigate"><div class="ss-form-entry">
<input class="submitbuttons" type="submit" name="submit" value=" " src="" border="0" onclick="myFunction()" />
</div>
</div>
</form>
如果任何字段为空,以下是拒绝提交表单的 javascript。这个代码是网上找的,不是我自己写的。它已经过测试并且可以工作,但我希望它做的不仅仅是拒绝提交。
<script type="text/javascript">
(function() {
var divs = document.getElementById('ss-form').
getElementsByTagName('div');
var numDivs = divs.length;
for (var j = 0; j < numDivs; j++) {
if (divs[j].className == 'errorbox-bad') {
divs[j].lastChild.firstChild.lastChild.focus();
return;
}
}
for (var i = 0; i < numDivs; i++) {
var div = divs[i];
if (div.className == 'ss-form-entry' &&
div.firstChild &&
div.firstChild.className == 'ss-q-title') {
div.lastChild.focus();
return;
}
}
})();
</script>
如果可能的话,我想知道如何在表单被拒绝或接受时添加警报。另外,如果表格被拒绝,我想拥有它,以便我有类似的东西
<font class="asterick" div="your_name_ast">*</font> or <font class="asterick" div="company_name_ast">*</font>
如果表单被拒绝未提交,则让星号显示在每个空元素旁边。例如让表单检查每个元素是否为空。如果脚本发现该元素为空,则会弹出一个警报,提示“表单未填写。请查看所有带有 * 的元素。” 然后它会出现星号。
感谢读到这里的任何人。
编辑:多做一些环顾四周,似乎警报被认为是不好的做法。这是真的?有没有其他方法可以让用户知道元素是否为空?