2013-07-10 75 views
0

如上所述require属性不适用于我,我已经搜索了一下,但我在这里和其他地方找到的答案不能帮助我,如果有人可以帮我HTML输入要求属性不起作用

应用是没有什么特别的,只是对我学习PHP和jQuery一个小东西,那就是:

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Sig Generator</title> 
    <script type="text/javascript" src ="jquery-2.0.3.min.js"></script> 
    <script type="text/javascript" src="sig.js"></script> 
</head> 
<body> 
    <div id="legalform" align ="center"> 

      Rechtsform auswählen:<br><br> 
      <select id="selection" size="1">   
      </select><br><br> 

      <input id="sendLegalForm" type="button" value ="Weiter"/>   
    </div> 

    <div id="fields" align="center"> 
      <form id="fieldsForm" > 
      <br> 
      <br>  
      <input id="sendFields" type="submit" value="Weiter"/> 
      </form> 

      <br> 

    </div> 

    <div id="display" > 


     <textarea id="textarea" cols="30" rows="20"></textarea> 

    </div> 

</body> 
</html> 

jQuery的

$(document).ready(function() { 
    var $selection =""; 

    $.ajax({ 
     type:'GET', 
     url:'http://localhost/php/sig.php?legalforms=true', 
     dataType:'json', 
     success: function (data){ 
      $("#display").hide();  
      var selection = []; 
      for(var i = 0; i<data.length; i++){ 
       selection.push('<option>', data[i],'</option>'); 
      } 
      $("#selection").html(selection.join(''));    
      $("#fields").hide(); 
     }, 
     error: function(jqXHR,textStatus,errorThrown){ 
      console.log(jqXHR); 
      console.log(textStatus); 
      console.log(errorThrown); 
     } 
    }); 

    $("#sendLegalForm").click(function() {  
     selection = $('#selection').val(); 
     $.ajax({ 
      type:'GET', 
      url:'http://localhost/php/sig.php?selectedLegalform='+ selection, 
      dataType:'json', 
      success: function (data){ 

       $("#legalform").hide(); 
       $("#fields").show(); 
       var fieldnames =[]; 
       for(property in data.namesToSubmit){ 
        fieldnames.push(property); 
       }     
       var fields=[]; 
       for(var i=0; i<data.textfieldHeaders.length; i++){    
       fields.push(data.textfieldHeaders[i],'<br>','<input name="',fieldnames[i],'" type="text"',data.namesToSubmit[fieldnames[i]] == "required"?"required":"",'>','<br/>');                
       }     

       fields.push("<br>", 'Pflichtfelder (*)'); 
       $("#fieldsForm").prepend(fields.join(''));    
      }, 
      error: function(jqXHR,textStatus,errorThrown){ 
       console.log(jqXHR); 
       console.log(textStatus); 
       console.log(errorThrown); 
      } 
     }); 
    }); 

     $("#sendFields").click(function(){  
     $.ajax({ 
      type:'POST', 
      url: 'http://localhost/php/sig.php?fieldsend='+selection, 
      data: $("#fieldsForm").serialize(), 
      success: function (data){     
       $('#fields').hide(); 
       $('#display').show(); 
       $("#textarea").html(data); 
      }, 
      error: function(jqXHR,textStatus,errorThrown){ 
       alert('Bitte alle Pflichtfelder ausfüllen.'); 
       console.log(jqXHR); 
       console.log(textStatus); 
       console.log(errorThrown); 
      } 
     }); 
     return false; 
    }); 

}); 

和PHP文件

<?php 

header('Content-type: application/json; charset=UTF8'); 
header('Access-Control-Allow-Origin: *'); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: 0"); 

if (isset($_GET['legalforms'])) {  
    $legalform = array('Aktiengesellschaft', 
         'GmbH'); 

    echo json_encode($legalform); 
} else if(isset($_GET['selectedLegalform'])) { 
     $selection = $_GET['selectedLegalform']; 

     $fieldArray = array(); 

     if ($selection == 'GmbH'){ 

       $fieldArray['namesToSubmit'] = array( 'companyName',              
                 'location', 
                 'phone', 
                 'fax', 
                 'web', 
                 'registryCourt', 
                 'registryNumber', 
                 'ceo'); 

       $fieldArray['textfieldHeaders'] = array('Firmenname und Rechtsform*', 
                 'Anschrift*', 
                 'Telefon', 
                 'Fax', 
                 'Webseite', 
                 'Registergericht*', 
                 'Registernummer*', 
                 'Geschäftsführer*'); 

     } 

     if($selection =='Aktiengesellschaft'){ 

       $fieldArray['namesToSubmit'] = array( 'companyName'=>'required', 
                 'location' =>'required', 
                 'phone'=>null, 
                 'fax'=>null, 
                 'web' => null, 
                 'registryCourt'=>'required', 
                 'registryNumber'=>'required', 
                 'board'=>'required', 
                 'chairmanboard'=>'required'); 

       $fieldArray['textfieldHeaders'] = array('Firmenname und Rechtsform*',                          'Anschrift*', 
                 'Telefon', 
                 'Fax', 
                 'Webseite', 
                 'Registergericht*', 
                 'Registernummer*', 
                 'Vorstand*', 
                 'Aufsichtsratsvorstzender*'); 
     } 
     echo json_encode($fieldArray); 

    } else if ($_GET['fieldsend']) { 
     $selection = $_GET['fieldsend'];   

     $signatur = "--\n"; 
     foreach($_POST as $key => $value) { 
      if($selection == 'Aktiengesellschaft'){ 
      // do something.. 
      }  
     }  
     echo json_encode($signatur); 
    } 

?> 
+3

也许你正在浏览器中测试不能处理require属性(例如IE9或更低版本)。 – Christoph

+0

我使用铬,所以不应该是这个问题,当我检查铬中的元素我可以看到HTML是好的generatet与需求在最后,但它仍然不工作 – Adrian

回答

3

您正在收听的click事件按钮,并没有对submit事件的形式。因此,不会触发表单验证[请参阅fiddle]。

+0

哦,上帝,这是一个残余我以前做过的一些测试,我怎么能看不到它呢..不管怎样,谢谢,它现在可以运作 – Adrian

+0

+1! – Christoph

+0

只是一个快速的问题,现在我在字段中输入文本后,我点击按钮,页面重定向到第一个选择插入到输入的textarea,任何想法为什么? – Adrian