繁体   English   中英

javascript-处理表单的两个函数

[英]javascript - Two functions handling a form

我需要一些JavaScript处理表单的帮助。 我对此很陌生,不知道下一步该怎么做。 我有两种形式的函数:一种用于检查数据是否正常,另一种用于将复选框合并为一条记录。 有没有办法将它们合并为一个功能?

表单代码:

<form id="formularz_wspolpraca"   name="Zapis na poradnik" method="post" target="_top" onsubmit="return SprawdzFormularz(this)">
<input type="text" id="email" name="email"/>
<input type="text" id="imie" name="imie"/>
<input type="text" id="nazwisko" name="nazwisko"/>
<input type="text" maxlength="12" size="12" id="pole_1" name="pole_1"/>
<input class="checkbox_wspolpraca" type="Checkbox" name="pole_3a" value="polecajacy"> 
<input class="checkbox_wspolpraca" type="Checkbox" name="pole_3b" value="projektant"> 
<input class="checkbox_wspolpraca" type="Checkbox" name="pole_3c" value="instalator"> 
<input class="checkbox_wspolpraca" type="Checkbox" name="pole_3d" value="ekspert"> 
<input type="hidden" name="pole_3" id="pole_3">
<input id="pp" type="checkbox" name="pp" checked=""/>
<input type="submit"  value="Wyślij">
</form>

检查数据功能:

 function SprawdzFormularz(f) { if (f.email.value == "") { alert("Nie poda\łe\ś/a\ś adresu e-mail."); return false; } if (((f.email.value.indexOf("@", 1)) == -1) || (f.email.value.indexOf(".", 1)) == -1) { alert("Poda\łe\ś/a\ś b\ł\ędny adres e-mail."); return false; } if (f.imie.value == "") { alert("Wype\łnij pole Imi\ę. "); return false; } if (f.nazwisko.value == "") { alert("Wype\łnij pole Nazwisko. "); return false; } if (f.pole_1.value == "") { alert("Wype\łnij pole Nr telefonu. "); return false; } if ((f.pole_3a.checked == false) && (f.pole_3b.checked == false) && (f.pole_3c.checked == false) && (f.pole_3d.checked == false)) { alert("Wybierz zakres wsp\ó\łpracy"); return false; } if (f.pp.checked == false) { alert("Musisz zgodzi\ć si\ę z Polityk\ą Prywatno\ści."); return false; } form.submit(); return true; } 

合并复选框功能:

var form = document.getElementById('formularz_wspolpraca');
try {
  form.addEventListener("submit", mergeFuntion, false);
} catch (e) {
  form.attachEvent("onsubmit", mergeFuntion);
}

function mergeFuntion(event) {
  event.preventDefault();
  var boxes = document.getElementsByClassName('checkbox_wspolpraca');
  var checked = [];
  for (var i = 0; boxes[i]; ++i) {
    if (boxes[i].checked) {
      checked.push(boxes[i].value);
    }
  }
  var checkedStr = checked.join(' ');
  document.getElementById('pole_3').value = checkedStr;

  return false;
}

期待您的回复,我很失落。

您可以在onsubmit简单地调用这两个函数:

onsubmit="return SprawdzFormularz(this) && mergeCheckboxes(this)"

如果即使检查功能失败,也要运行合并功能,则可以设置变量:

onsubmit="check = SprawdzFormularz(this); merge = mergeCheckboxes(this); return check && merge"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM