2012-04-05 12 views
-1

今、私は何のチェックボックスがオンになっていないときにポップアップボックスを提出する上で作成されたとして、それを検証するHTMLチェックボックス検証

echo "<Input type = 'Checkbox' class='cl2' Name =".$i."/>".$f1. 

に従うように私はPHPのチェックボックスを作成しました。

私はそれが何かを返していない以下のjs

function Validate() { 
    alert (document.getElementsByClassName('cl2')[0].checked); 
    for(i=0;i<=5;i++) { 
     if(document.getElementsByClassName('cl2')[i].checked == false) { 
      alert("approve atleast one request"); 
     } else { 
      return true; 
     } 
    } 
} 

でそれを試してみました。 forループの条件は何でしょうか?

答えて

2

検証が無効な場合は、falseを返す必要があります。以下を参照してください。 getElementsByClassNameを使用しているときは、最新のブラウザでのみサポートされていますので、古いブラウザやfallbackを使用してください。

function Validate() { 
    for (i = 0; i <= 5; i++) { 
     if (document.getElementsByClassName('cl2')[i].checked == false) { 
      alert("approve atleast one request"); 
      return false; 
     } else { 
      return true; 
     } 
    } 
} 
+0

function validate() { var j = 0; ([I] .checkedをdocument.getElementsByClassName( 'CL2')){ J = 1 {もし、(iは++; iはdocument.getElementsByClassName( 'CL2')の長さを flyingkandi

+0

@flyingkandi何を言っているのですか? –

0

forループのような何か試すための長さを取得するには、次の、そうでない場合は

name='" . $i . "' 

var elem = this.getElementsByTagName('cl2'); 
for (var i = 0; i < elem.length; i++) 
+0

getElementsByTagName( 'cl2')、私は確かにHTMLに "cl2"タグがないと確信しています。 –

+0

'cl2'は、チェックボックスに使用しているクラスの名前です。 – Byron

+0

正解で、コードには** getElementsByTagName **と表示されます –

0

まずオフを、あなたはこのようなあなたの名前属性をラップする必要がありますあなた$ i PHPで連結している場合、HTMLマークアップで引用符で囲まれません。エコーされ、HTMLマークアップが誤って表示されます。

第二に、私は、ループ内のreturn文の生成

function Validate() { 
    var isChecked = false; 
    for(i=0; i <= 5; i++) { 
     if(document.getElementsByClassName('cl2')[i].checked == true) { 
      isChecked = true; 
     } 
    } 
    return isChecked; 
} 

if(Validate()) { 
    // do something 
} else { 
    alert("approve atleast one request"); 
} 

が悪いスタイルですので、それを避けるため(あなたがしようとしている正確に何を知らない)より、このようなJavaScriptのものをフォーマットします。また、あなたのエコーされたPHP 以下ののスクリプトタグにjavascriptを挿入して、コンテンツがロードされた後にスクリプトが確実に実行されるようにします。それ以外の場合は、<body>タグにonload="Validate()"属性を挿入し、ページの<head>セクションにjavascriptを挿入できます。

これが役に立ちます。乾杯!

関連する問題