2015-03-02 2 views
1

когда я проверил любой флажок, тогда он должен выдать сообщение об ошибке для всех деталей, независимо от того, установлен ли установленный флажок. В моем коде, если я выбираю 1-й флажок, он показывает один текстовый файл и один раскрывающийся список, хочет выполнить проверку, чтобы заполнить текстовое поле и выпадающее список, пока он не проверяет другие параметры, & одинаковый со всеми. Прямо сейчас я просто беру текстовое поле и раскрывающийся список только для первого флажка, но для каждого флажка. Простыми словами, если я не заполняю значение текстового поля и выпадающее значение, он не позволяет проверять следующий параметр. Я не знаю. может кто-нибудь, пожалуйста, скажите мне, как это сделать.заполнять детали внутри флажок checkbox

<script> 
function validate() 
{ 
    document.getElementById("error").innerHTML="atleast check one checkbox."; 
    //alert(""); 
    var chk=document.getElementsByName("chkbox"); 
    var hasChecked = false; 
    for(var i=0; i<chk.length; i++) 
     { 
      if(chk[i].checked) 
      { 
       hasChecked= true; 

       break; 
      } 
     } 
return true; 
} 

function toggle(source) { 
    checkboxes = document.getElementsByName('a[]'); 
    for(var i=0, n=checkboxes.length;i<n;i++) 
    { 
    checkboxes[i].checked = source.checked; 
    } 
} 
</script> 
</head> 
<body> 
<form method="post" name="form"> 
<table> 
<tr><td><div id="error"></div></td></tr> 
<tr><td style="padding:10px;padding-top:0; padding-bottom:0" >1 .What does the scope of test include?</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" value="a) selected 1"> &nbsp;&nbsp;&nbsp;a)select 1<br /><br /> 
Name : <input type="text" name="fname" /><br /><br /> 
Country : <select><option value="1">india</option><option value="2">usa</option></select> 
</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" value="b) selected 2"/>&nbsp;&nbsp;&nbsp;b)select 2</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" value="c)selected 3"/>&nbsp;&nbsp;&nbsp;c select 3</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" value="d)selected 4"/>&nbsp;&nbsp;&nbsp;d)select 4</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" onClick="toggle(this)" value="e)Or all of the above"/>&nbsp;&nbsp;&nbsp;e)Or all of the above </td></tr> 
</table> 
<input type="submit" onclick="validate()" name="submit" value="Submit" /> 
</form> 
</body> 
</html> 

<?php 
if(isset($_POST['submit'])) 
{ 
    [email protected]$_POST['a']; 

    $supplies = @implode(',',$_POST['a']); 
    echo $supplies; 
} 


?> 
+0

Извините, что это слишком запутанно, пожалуйста, опишите точную проблему. –

+1

У вас такие большие флажки, что вы можете показать текстовое поле и выпадающее меню _inside checkbox_? – Teemu

+0

Я обновил свой вопрос, пожалуйста, проверьте его. @Arunprasanth KV –

ответ

2

Ниже решение:

<script> 
function validate() 
{ 
    var inputTags = document.getElementsByTagName('input'); 
    var checkboxCount = 0; 
    for (var i=0, length = inputTags.length; i<length; i++) { 
     if (inputTags[i].type == 'checkbox') { 
      if(inputTags[i].checked){ 
       checkboxCount++; 
      }  
     } 
    } 

    if(checkboxCount == 0){ 
     document.getElementById("error").innerHTML="atleast check one checkbox."; 
     return false; 
    }else{ 
     checkboxesahas = document.getElementsByClassName('aopt');   
     for(var i=0, n=checkboxesahas.length;i<n;i++) 
     { 
      if(checkboxesahas[i].checked){ 
       ahaselements = document.getElementsByClassName('ahaselement'); 
       for(var j=1;j<=ahaselements.length;j++) { 
       ahaselementid = 'ahaselement'+j; 
       if(document.getElementById(ahaselementid).value == ''){ 
        document.getElementById("error").innerHTML="value missing in one or more of checked checkbox element."; 
        return false;      
       } 
       } 
      } 
     }   
    } 
return true; 
} 

function toggle(source) { 
    checkboxes = document.getElementsByClassName('aopt'); 
    for(var i=0, n=checkboxes.length;i<n;i++) 
    { 
    checkboxes[i].checked = source.checked; 
    } 
} 
</script> 
</head> 
<body> 
<form method="post" name="form"> 
<table> 
<tr><td><div id="error"></div></td></tr> 
<tr><td style="padding:10px;padding-top:0; padding-bottom:0" >1 .What does the scope of test include?</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" class="aopt" value="a) selected 1"> &nbsp;&nbsp;&nbsp;a)select 1<br /><br /> 
Name : <input type="text" name="fname" id="ahaselement1" class="ahaselement" /><br /><br /> 
Country : <select name="country" id="ahaselement2" class="ahaselement"><option value="">no</option><option value="1">india</option><option value="2">usa</option></select> 
</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" class="aopt" value="b) selected 2"/>&nbsp;&nbsp;&nbsp;b)select 2</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" class="aopt" value="c)selected 3"/>&nbsp;&nbsp;&nbsp;c select 3</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" class="aopt" value="d)selected 4"/>&nbsp;&nbsp;&nbsp;d)select 4</td></tr> 
<tr><td style="padding-left:5%;padding-bottom:0"><input type="checkbox" name="a[]" class="aopt" onClick="toggle(this)" value="e)Or all of the above"/>&nbsp;&nbsp;&nbsp;e)Or all of the above </td></tr> 
</table> 
<input type="submit" onclick="return validate()" name="submit" value="Submit" /> 
</form> 
</body> 
</html> 

<?php 
if(isset($_POST['submit'])) 
{ 
    [email protected]$_POST['a']; 

    $supplies = @implode(',',$_POST['a']); 
    echo $supplies; 
} 


?> 

PS: Я заполнил проверку в error ид через innerHTML таким же образом, как вы делали. Также есть некоторые изменения, сделанные в флажках и других элементах. Также проверьте это.

Дайте мне знать, если есть какие-либо проблемы. Спасибо! :)

+0

Ох, да, это работает. Большое вам спасибо @Prashant Gadhvi –

+0

@sandysharma - My Pleasure Bro! –

Смежные вопросы