1

いくつかのフィールドがあるaspフォームがあります。送信時に、JavaScriptを使用して、チェックボックスが選択されていること、および指定された範囲内の「金額」フィールドに数値のみがあることを確認したいと思います。3つすべてを一度にチェックするのに苦労しています-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>

現時点では、これはチェックボックスの選択と範囲の2つの別々のチェックです。

どんなアイデアでもありがたいです。

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 / andsについて混乱する可能性があるので、x<5||に注意してください。x> 250は()でラップされているため、数値条件と組み合わせることができます。次に、最後に全体がステートメントをラップします。

于 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 に答える