1

我有一个包含多个字段的 asp 表单。在提交时,我想使用 javascript 检查已选择复选框并且在给定范围内的“金额”字段并且只有数字。我正在努力让它一次检查所有三个 - 在mometn我有以下内容:

<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["Amount"].value;
if (x<5 || x >250)
  {
  alert("Please complete all required fields - Amount you wish to save");
  return false;
  }

else if ( myForm.agreesubmit.checked == false )
  {
  alert ( "You Must Agree To The Terms and Conditions" );
  return false;
  } 

}
</script>

目前,这是对复选框选择和范围的两个单独检查。

任何想法表示赞赏。

4

3 回答 3

4

创建一个可以执行此操作的函数:

function validate(str, chk, min, max) {
  n = parseFloat(str);
  return (chk && !isNaN(n) && n >= min && n <= max);
}

然后这样称呼它:

function validateForm()
{
  if(!validate(document.forms["myForm"]["Amount"].value, 
     document.forms["myForm"]["agreesubmit"].checked, 5, 250)) {
    alert("Please complete all required fields - Amount you wish to save");
    return false;
  }
}
于 2012-08-21T21:20:58.747 回答
2

尝试使用 isNan()。教程位于http://www.w3schools.com/jsref/jsref_isnan.asp

就像是:

if (isNaN(x) || x < 5 || x > 250))
{
    alert("Please complete all required fields - Amount you wish to save");
    return false;
}

快速说明您可能对 or/and 感到困惑,因此请注意 x<5 || x >250 被包裹在 () 中,以便它可以与 and 数字条件配合使用。然后,最后整个 if 包装了语句。

于 2012-08-21T21:14:45.067 回答
0

这将确保它首先只有数字,然后根据范围检查数字。

<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["Amount"].value;
if( String(x).search(/^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/) != -1
&&( x<5 || x >250 ))
  {
  alert("Please complete all required fields - Amount you wish to save");
  return false;
  }

else if ( myForm.agreesubmit.checked == false )
  {
  alert ( "You Must Agree To The Terms and Conditions" );
  return false;
  } 

}
</script>

通过http://ntt.cc/2008/05/10/over-10-useful-javascript-regular-expression-functions-to-improve-your-web-applications-efficiency.html

于 2012-08-21T21:15:51.090 回答