vendredi 16 novembre 2018

Jquery javascript doesn't show textbox form value using array.from Forms and script builder

Why do I get this error and how to fix it? I wan't to show text typed not

Visit in presence of  <input id="element_1_5" name="element_1_5" class="element text large" type="text" value=""> 
Chronic diesases: none

Beofre I was using really long code, but it worked, for example when I check and write something in a textbox:

Visit in presence of  parents
Visit in presence of asasas

const $ = (s) => document.querySelector(s);
const $$ = (s) => document.querySelectorAll(s);

$("#saveForm").addEventListener("click", function (evt) {
  evt.preventDefault(); // don't submit the form
  let output = [];
  
 let inPresenceOf = Array.from($$("input[type='checkbox'][id^='element_1_']")).filter(element => element.checked);
         if ($("#element_1_1").checked) output.push($("label[for='element_1']").innerHTML + " " + $("label[for='"+inPresenceOf[0].id+"']").innerHTML);
          if ($("#element_1_2").checked) output.push($("label[for='element_1']").innerHTML + " " + $("label[for='"+inPresenceOf[0].id+"']").innerHTML);
           if ($("#element_1_3").checked) output.push($("label[for='element_1']").innerHTML + " " + $("label[for='"+inPresenceOf[0].id+"']").innerHTML);
         if ($("#element_1_4").checked) output.push($("label[for='element_1']").innerHTML + $("#element_1_5").value);   
  const outputString = output.join("\n");
  console.log(outputString)
  document.getElementById("demo").innerHTML = outputString;

})
            <li id="li_1" >
                <label class="description" for="element_1">Visit in presence of </label>
                <span>
                        <input id="element_1_1" name="element_1" class="element checkbox" type="checkbox" value="1" />
<label class="choice" for="element_1_1">parents</label>
<input id="element_1_2" name="element_1" class="element checkbox" type="checkbox" value="2" />
<label class="choice" for="element_1_2">mother</label>
<input id="element_1_3" name="element_1" class="element checkbox" type="checkbox" value="3" />
<label class="choice" for="element_1_3">father</label>
<input id="element_1_4" name="element_1" class="element checkbox" type="checkbox" value="4" />
<label class="choice" for="element_1_4"><input id="element_1_5" name="element_1_5" class="element text large" type="text" value=""/> </label>
                </span> 
    
    <li class="buttons">
                            <input type="hidden" name="form_id" value="25714" />
                            
                                <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
                </li>
                        </ul>
                </form>   
        
        

Is there any way that when I check two checkboxes it would show it insead showing nothing? I tried using radio, but I have no idea how to uncheck it when I click it by mistake and don't want to have it in summary.

Also when I'm creating those forms how can I write script faster? I would like to create form builder like on this website http://www.phpform.org but I have no idea where to start... I mean to create a tool that will make a script at the same time when I'm making a form, writing it all by myself is too exhausting.

const $ = (s) => document.querySelector(s);
const $$ = (s) => document.querySelectorAll(s);

$("#saveForm").addEventListener("click", function (evt) {
  evt.preventDefault(); // don't submit the form
  let output = [];
  
 // set first field if checkbox checked
 let inPresenceOf = Array.from($$("input[type='checkbox'][id^='element_1_']")).filter(element => element.checked);
  if(inPresenceOf.length === 1) {
  output.push($("label[for='element_1']").innerHTML + " " + $("label[for='"+inPresenceOf[0].id+"']").innerHTML);
  } else { output.push($("#element_1_5").value);
  }
  
  
  // set second field if value not empty
  if($("#element_2").value.trim()) output.push("Chronic diesases: " + $("#element_2").value.trim());
const outputString = output.join("\n");
  console.log(outputString)
  document.getElementById("demo").innerHTML = outputString;

})
body
{
        background:#fffff;
        font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
        font-size:small;
        margin:8px 0 16px;
        text-align:center;
}

#form_container
{
        background:#fff;
        border:1px solid #ccc;
        margin:0 auto;
        text-align:left;
        width:640px;
}

#top
{
        display:block;
        height:10px;
        margin:10px auto 0;
        width:650px;
}

#footer
{
        width:640px;
        clear:both;
        color:#999999;
        text-align:center;
        width:640px;
        padding-bottom: 15px;
        font-size: 85%;
}

#footer a{
        color:#999999;
        text-decoration: none;
        border-bottom: 1px dotted #999999;
}

#bottom
{
        display:block;
        height:10px;
        margin:0 auto;
        width:650px;
}

form.appnitro
{
        margin:20px 20px 0;
        padding:0 0 20px;
}

/**** Logo Section  *****/
h1
{
        background-color:#dedede;
        margin:0;
        min-height:0;
        padding:0;
        text-decoration:none;
        text-indent:-8000px;
        
}

h1 a
{
        
        display:block;
        height:100%;
        min-height:40px;
        overflow:hidden;
}


img
{
        behavior:url(css/iepngfix.htc);
        border:none;
}


/**** Form Section ****/
.appnitro
{
        font-family:Lucida Grande, Tahoma, Arial, Verdana, sans-serif;
        font-size:small;
}

.appnitro li
{
        width:61%;
}

form ul
{
        font-size:100%;
        list-style-type:none;
        margin:0;
        padding:0;
        width:100%;
}

form li
{
        display:block;
        margin:0;
        padding:4px 5px 2px 9px;
        position:relative;
}

form li:after
{
        clear:both;
        content:".";
        display:block;
        height:0;
        visibility:hidden;
}

.buttons:after
{
        clear:both;
        content:".";
        display:block;
        height:0;
        visibility:hidden;
}

.buttons
{
        clear:both;
        display:block;
        margin-top:10px;
}

* html form li
{
        height:1%;
}

* html .buttons
{
        height:1%;
}

* html form li div
{
        display:inline-block;
}

form li div
{
        color:#444;
        margin:0 4px 0 0;
        padding:0 0 8px;
}

form li span
{
        color:#444;
        float:left;
        margin:0 4px 0 0;
        padding:0 0 8px;
}

form li div.left
{
        display:inline;
        float:left;
        width:48%;
}

form li div.right
{
        display:inline;
        float:right;
        width:48%;
}

form li div.left .medium
{
        width:100%;
}

form li div.right .medium
{
        width:100%;
}

.clear
{
        clear:both;
}

form li div label
{
        clear:both;
        color:#444;
        display:block;
        font-size:9px;
        line-height:9px;
        margin:0;
        padding-top:3px;
}

form li span label
{
        clear:both;
        color:#444;
        display:block;
        font-size:9px;
        line-height:9px;
        margin:0;
        padding-top:3px;
}

form li .datepicker
{
        cursor:pointer !important;
        float:left;
        height:16px;
        margin:.1em 5px 0 0;
        padding:0;
        width:16px;
}

.form_description
{
        border-bottom:1px dotted #ccc;
        clear:both;
        display:inline-block;
        margin:0 0 1em;
}

.form_description[class]
{
        display:block;
}

.form_description h2
{
        clear:left;
        font-size:160%;
        font-weight:400;
        margin:0 0 3px;
}

.form_description p
{
        font-size:95%;
        line-height:130%;
        margin:0 0 12px;
}

form hr
{
        display:none;
}

form li.section_break
{
        border-top:1px dotted #ccc;
        margin-top:9px;
        padding-bottom:0;
        padding-left:9px;
        padding-top:13px;
        width:97% !important;
}

form ul li.first
{
        border-top:none !important;
        margin-top:0 !important;
        padding-top:0 !important;
}

form .section_break h3
{
        font-size:110%;
        font-weight:400;
        line-height:130%;
        margin:0 0 2px;
}

form .section_break p
{
        font-size:85%;

        margin:0 0 10px;
}

/**** Buttons ****/
input.button_text
{
        overflow:visible;
        padding:0 7px;
        width:auto;
}

.buttons input
{
        font-size:120%;
        margin-right:5px;
}

/**** Inputs and Labels ****/
label.description
{
        border:none;
        color:#222;
        display:block;
        font-size:95%;
        font-weight:700;
        line-height:150%;
        padding:0 0 1px;
}

span.symbol
{
        font-size:115%;
        line-height:130%;
}

input.text
{
        background:#fff url(../../../images/shadow.gif) repeat-x top;
        border-bottom:1px solid #ddd;
        border-left:1px solid #c3c3c3;
        border-right:1px solid #c3c3c3;
        border-top:1px solid #7c7c7c;
        color:#333;
        font-size:100%;
        margin:0;
        padding:2px 0;
}

input.file
{
        color:#333;
        font-size:100%;
        margin:0;
        padding:2px 0;
}

textarea.textarea
{
        background:#fff url(../../../images/shadow.gif) repeat-x top;
        border-bottom:1px solid #ddd;
        border-left:1px solid #c3c3c3;
        border-right:1px solid #c3c3c3;
        border-top:1px solid #7c7c7c;
        color:#333;
        font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
        font-size:100%;
        margin:0;
        width:99%;
}

select.select
{
        color:#333;
        font-size:100%;
        margin:1px 0;
        padding:1px 0 0;
        background:#fff url(../../../images/shadow.gif) repeat-x top;
        border-bottom:1px solid #ddd;
        border-left:1px solid #c3c3c3;
        border-right:1px solid #c3c3c3;
        border-top:1px solid #7c7c7c;
}


input.currency
{
        text-align:right;
}

input.checkbox
{
        display:block;
        height:13px;
        line-height:1.4em;
        margin:6px 0 0 3px;
        width:13px;
}

input.radio
{
        display:block;
        height:13px;
        line-height:1.4em;
        margin:6px 0 0 3px;
        width:13px;
}

label.choice
{
        color:#444;
        display:block;
        font-size:100%;
        line-height:1.4em;
        margin:-1.55em 0 0 25px;
        padding:4px 0 5px;
        width:90%;
}

select.select[class]
{
        margin:0;
        padding:1px 0;
}

*:first-child+html select.select[class]
{
        margin:1px 0;
}

.safari select.select
{
        font-size:120% !important;
        margin-bottom:1px;
}

input.small
{
        width:25%;
}

select.small
{
        width:25%;
}

input.medium
{
        width:50%;
}

select.medium
{
        width:50%;
}

input.large
{
        width:99%;
}

select.large
{
        width:100%;
}

textarea.small
{
        height:5.5em;
}

textarea.medium
{
        height:10em;
}

textarea.large
{
        height:20em;
}

/**** Errors ****/
#error_message
{
        background:#fff;
        border:1px dotted red;
        margin-bottom:1em;
        padding-left:0;
        padding-right:0;
        padding-top:4px;
        text-align:center;
        width:99%;
}

#error_message_title
{
        color:#DF0000;
        font-size:125%;
        margin:7px 0 5px;
        padding:0;
}

#error_message_desc
{
        color:#000;
        font-size:100%;
        margin:0 0 .8em;
}

#error_message_desc strong
{
        background-color:#FFDFDF;
        color:red;
        padding:2px 3px;
}

form li.error
{
        background-color:#FFDFDF !important;
        border-bottom:1px solid #EACBCC;
        border-right:1px solid #EACBCC;
        margin:3px 0;
}

form li.error label
{
        color:#DF0000 !important;
}

form p.error
{
        clear:both;
        color:red;
        font-size:10px;
        font-weight:700;
        margin:0 0 5px;
}

form .required
{
        color:red;
        float:none;
        font-weight:700;
}

/**** Guidelines and Error Highlight ****/
form li.highlighted
{
        background-color:#fff7c0;
}

form .guidelines
{
        background:#f5f5f5;
        border:1px solid #e6e6e6;
        color:#444;
        font-size:80%;
        left:100%;
        line-height:130%;
        margin:0 0 0 8px;
        padding:8px 10px 9px;
        position:absolute;
        top:0;
        visibility:hidden;
        width:42%;
        z-index:1000;
}

form .guidelines small
{
        font-size:105%;
}

form li.highlighted .guidelines
{
        visibility:visible;
}

form li:hover .guidelines
{
        visibility:visible;
}

.no_guidelines .guidelines
{
        display:none !important;
}

.no_guidelines form li
{
        width:97%;
}

.no_guidelines li.section
{
        padding-left:9px;
}

/*** Success Message ****/
.form_success 
{
        clear: both;
        margin: 0;
        padding: 90px 0pt 100px;
        text-align: center
}

.form_success h2 {
    clear:left;
    font-size:160%;
    font-weight:normal;
    margin:0pt 0pt 3px;
}

/*** Password ****/
ul.password{
    margin-top:60px;
    margin-bottom: 60px;
    text-align: center;
}
.password h2{
    color:#DF0000;
    font-weight:bold;
    margin:0pt auto 10px;
}

.password input.text {
   font-size:170% !important;
   width:380px;
   text-align: center;
}
.password label{
   display:block;
   font-size:120% !important;
   padding-top:10px;
   font-weight:bold;
}

#li_captcha{
   padding-left: 5px;
}


#li_captcha span{
        float:none;
}

/** Embedded Form **/

.embed #form_container{
        border: none;
}

.embed #top, .embed #bottom, .embed h1{
        display: none;
}

.embed #form_container{
        width: 100%;
}

.embed #footer{
        text-align: left;
        padding-left: 10px;
        width: 99%;
}

.embed #footer.success{
        text-align: center;
}

.embed form.appnitro
{
        margin:0px 0px 0;
        
}



/*** Calendar **********************/
div.calendar { position: relative; }

.calendar table {
cursor:pointer;
border:1px solid #ccc;
font-size: 11px;
color: #000;
background: #fff;
font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
}

.calendar .button { 
text-align: center;    
padding: 2px;          
}

.calendar .nav {
background:#f5f5f5;
}

.calendar thead .title { 
font-weight: bold;      
text-align: center;
background: #dedede;
color: #000;
padding: 2px 0 3px 0;
}

.calendar thead .headrow { 
background: #f5f5f5;
color: #444;
font-weight:bold;
}

.calendar thead .daynames { 
background: #fff;
color:#333;
font-weight:bold;
}

.calendar thead .name { 
border-bottom: 1px dotted #ccc;
padding: 2px;
text-align: center;
color: #000;
}

.calendar thead .weekend { 
color: #666;
}

.calendar thead .hilite { 
background-color: #444;
color: #fff;
padding: 1px;
}

.calendar thead .active { 
background-color: #d12f19;
color:#fff;
padding: 2px 0px 0px 2px;
}


.calendar tbody .day { 
width:1.8em;
color: #222;
text-align: right;
padding: 2px 2px 2px 2px;
}
.calendar tbody .day.othermonth {
font-size: 80%;
color: #bbb;
}
.calendar tbody .day.othermonth.oweekend {
color: #fbb;
}

.calendar table .wn {
padding: 2px 2px 2px 2px;
border-right: 1px solid #000;
background: #666;
}

.calendar tbody .rowhilite td {
background: #FFF1AF;
}

.calendar tbody .rowhilite td.wn {
background: #FFF1AF;
}

.calendar tbody td.hilite { 
padding: 1px 1px 1px 1px;
background:#444 !important;
color:#fff !important;
}

.calendar tbody td.active { 
color:#fff;
background: #529214 !important;
padding: 2px 2px 0px 2px;
}

.calendar tbody td.selected { 
font-weight: bold;
border: 1px solid #888;
padding: 1px 1px 1px 1px;
background: #f5f5f5 !important;
color: #222 !important;
}

.calendar tbody td.weekend { 
color: #666;
}

.calendar tbody td.today { 
font-weight: bold;
color: #529214;
background:#D9EFC2;
}

.calendar tbody .disabled { color: #999; }

.calendar tbody .emptycell { 
visibility: hidden;
}

.calendar tbody .emptyrow { 
display: none;
}

.calendar tfoot .footrow { 
text-align: center;
background: #556;
color: #fff;
}

.calendar tfoot .ttip { 
background: #222;
color: #fff;
font-size:10px;
border-top: 1px solid #dedede;
padding: 3px;
}

.calendar tfoot .hilite { 
background: #aaf;
border: 1px solid #04f;
color: #000;
padding: 1px;
}

.calendar tfoot .active { 
background: #77c;
padding: 2px 0px 0px 2px;
}

.calendar .combo {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 4em;
border: 1px solid #ccc;
background: #f5f5f5;
color: #222;
font-size: 90%;
z-index: 100;
}

.calendar .combo .label,
.calendar .combo .label-IEfix {
text-align: center;
padding: 1px;
}

.calendar .combo .label-IEfix {
width: 4em;
}

.calendar .combo .hilite {
background: #444;
color:#fff;
}

.calendar .combo .active {
border-top: 1px solid #999;
border-bottom: 1px solid #999;
background: #dedede;
font-weight: bold;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dzieci</title>
<link rel="stylesheet" type="text/css" href="view.css" media="all">
<script type="text/javascript" src="view.js"></script>

</head>
<body id="main_body" >
        
        <img id="top" src="top.png" alt="">
        <div id="form_container">
        
                <h1><a>Dzieci</a></h1>
                <form id="form_25714" class="appnitro"  method="post" action="">
                                        <div class="form_description">
                        <h2>Dzieci</h2>
                        <p></p>
                </div>                                            
                        <ul >
                        
                                        <li id="li_1" >
                <label class="description" for="element_1">Visit in presence of </label>
                <span>
                        <input id="element_1_1" name="element_1" class="element checkbox" type="checkbox" value="1" />
<label class="choice" for="element_1_1">parents</label>
<input id="element_1_2" name="element_1" class="element checkbox" type="checkbox" value="2" />
<label class="choice" for="element_1_2">mother</label>
<input id="element_1_3" name="element_1" class="element checkbox" type="checkbox" value="3" />
<label class="choice" for="element_1_3">father</label>
<input id="element_1_4" name="element_1" class="element checkbox" type="checkbox" value="4" />
<label class="choice" for="element_1_4"><input id="element_1_5" name="element_1_5" class="element text large" type="text" value=""/> </label>
                </span> 
                </li>             <li id="li_2" >
                <label class="description" for="element_2">Chronic diesases </label>
                <div>
                        <textarea id="element_2" name="element_2" class="element textarea small">none</textarea>
                </div> 
                                        <li class="buttons">
                            <input type="hidden" name="form_id" value="25714" />
                            
                                <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
                </li>
                        </ul>
                </form>   
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
 const outputString = output.join("\n");
  console.log(outputString)
  document.getElementById("demo").innerHTML = outputString;
</script>
<textarea id=demo cols="100" rows="10"> </textarea>

        </body>
</html>



Aucun commentaire:

Enregistrer un commentaire