我试图将javascript函数放到验证表单中,但是无法使其正常工作。 这就是我所拥有的:
<script type="text/javascript" language="JavaScript">
function checkForm(f)
{
if (f.elements['val1'].value == "")
{
alert("Por favor insere o valor correcto do subsidio");
return false;
}
else
{
f.submit();
return false;
}
}
function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
alert("O valor que introduziu não é válido");
IsNumber = false;
}
}
return IsNumber;
}
</script>
<form method="post" onSubmit="return checkForm(this); return IsNumeric(this); return false;" action="<?php echo $_SERVER['PHP_SELF']; ?>">
第一个函数有效,但第二个函数只允许数字和小数点不起作用。 (不确定第二个功能是否正确)
有人可以帮帮我吗?
此致
答案 0 :(得分:3)
更简单的版本
<script type="text/javascript" language="JavaScript">
function checkForm(f) {
var val = f.elements['val1'].value;
if (val.length==0) { // blank
alert("Por favor insere o valor");
return false;
}
if (isNaN(val)) { // not numeric
alert("Por favor insere o valor correcto do subsidio");
return false;
}
// here the value is a number and filled in
return true; // no need for else after a return
}
</script>
<form method="post" onSubmit="return checkForm(this);" action="<?php echo $_SERVER['PHP_SELF']; ?>">
答案 1 :(得分:0)
请尝试返回此内容:
<form onSubmit="return checkForm(this) && IsNumeric(this.elements['val1'].value)">
return语句停止执行正在进行的代码,并且永远不会调用IsNumber函数。
顺便说一下:您可以验证这样的数字:
function IsNumeric(txt){ return parseFloat(txt) == txt; }
答案 2 :(得分:0)
您将返回第一个函数的值,因此停止运行is number函数。
您需要在checkForm函数中调用is。
<script type="text/javascript" language="JavaScript">
function checkForm(f)
{
if (f.elements['val1'].value == "")
{
alert("Por favor insere o valor correcto do subsidio");
return false;
}
else
{
return IsNumeric(f.elements['val1'].value);
}
}
function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
alert("O valor que introduziu não é válido");
IsNumber = false;
}
}
return IsNumber;
}
</script>
<form method="post" onSubmit="return checkForm(this);" action="<?php echo $_SERVER['PHP_SELF']; ?>">