嘿伙计们我为我的网站写了3个函数,它们看起来像这样:
function val_mail(mail)
{
if(!isNaN(mail))
{
alert("Ungültige E-Mail!");
return false;
}
if(mail.indexOf('.')===-1 || mail.indexOf('@')===-1)
{
alert("Ihre Email enthält keinen Punkt, oder @ Zeichen");
return false;
}
return true;
}
function check_numeric(form_value)
{
if(form_value.indexOf("€")!==-1)
{
alert("Bitte keine €-Zeichen anfügen, geben Sie bitte nur Numerische werte an");
return false;
}
if(isNaN(form_value))
{
alert("Wert ist nicht numerisch!");
return false;
}
else
{
return true;
}
}
function val_steuernummer(steuernummer)
{
if(isNaN(steuernummer))
{
return false;
}
if(steuernummer/100000000 < 1)
{
return false;
}
if(steuernummer/100000000 > 10)
{
return false;
}
return true;
}
当我在Javascript控制台中测试这些函数时,一切正常,但如果我想将这些函数组合到一个函数中检查所有3个值,它就不起作用。虽然我不确定此代码是否有效:onSubmit="return check_all()"
你能告诉我如何编写一个能检查所有内容的函数吗?
****** ********新闻 使用此代码:
function check_all(mail,steuernummer,kinder)
{
return val_mail(mail) &&val_steuernummer(steuernummer) && check_numeric(kinder);
}
这个命令在Javascript控制台中
check_all('hey@me.de','123456789','7')
它返回true,但是当我想在html文件中使用它时它不起作用?
这个Initialazon是否正确:
var steuernummer = $("#steuernummer");
var kinder = $("#kidner_anzahl");
var mail = $("#mail");
NOTE: These are global variables
这是onSubmit正确吗?
<form name="fragebogen" action="next.php" method="post" onSubmit="return check_all()" id="formular">
答案 0 :(得分:0)
你可以这样做:
function check_all() {
/* get values to pass to functions */
var mail = ...
var form_value = ...
var steuernummer = ...
return val_mail(mail) &&
val_steuernummer(steuernummer) &&
check_numeric(form_value);
}
与onsubmit属性无关,与你如何调用 check_all
无关这个Initialazon是否正确:
var steuernummer = $(“#steuernummer”); var kinder = $(“#kidner_anzahl”); var mail = $(“#mail”);注意:这些是全球性的 变量
没有。猜测,你传递jQuery(虽然其他库使用 $ 和选择器)并且正在将jQuery对象传递给函数,而不是相关控件的值。大概你想要调用控件的值,所以传递它们:
function check_all() {
return val_mail(mail.val()) &&
val_steuernummer(steuernummer.val()) &&
check_numeric(kinder.val());
}
实现此目的的最简单方法是在提交侦听器中传递对表单的引用:
<form ... onsubmit="return check_all(this)">
然后在函数中:
function check_all(form) {
return val_mail(form.mail.value) &&
val_steuernummer(form.steuernummer.value) &&
check_numeric(form.kidner_anzahl.value);
}
如果您发布一个“工作”示例,并将其减少到显示问题的最小值,那么它会有很大帮助。然后其他人不想猜测他们看不到的东西。