jquery - Issue appending newly changed variable and outputting with Javascript -




i have issue following code.

i trying change content of variable if button clicked , output corresponding content part of larger output. output varies depending on if inner button within form clicked.

can suggest fix code or improvements?

in output should see longer version block appended on newly created block , grab new id values generated. great.

here code:

<script>     $(document).ready(function() {         var currentid = 1;         $(':button#add').on('click',function() {             currentid++;             var clone = $('#content').clone();             clone.children('.content_title').attr('id', 'title_content-' + currentid);             clone.children('.content_more').attr('id', 'more_content-' + currentid);             clone.attr("id", "content_1");             clone.insertafter('#content');              if(currentid >= 2) {                 document.getelementbyid("add").style.display = "none";             }         });     }); </script> </head> <body>     <div>         <div>             <form action="" method="post">                 <h1>create code</h1>                 <fieldset>                     <legend><span class="number"></span>header</legend>                     <label for="name">title:</label>                     <input type = "text" id = "title" />                                                                    </fieldset>                 <fieldset id = "content">                     <legend><span class="number"></span>content</legend>                     <label for="name">title:</label>                     <input class = "content_title" type = "text" id = "title_content" />                     <label for="mail">content:</label>                     <input class = "content_more" type = "text" id = "more_content" />                 </fieldset>                 <input id = "add" type = "button" value = "add" />                                                                                                                                                         </form>                 <button onclick="trytest()">code</button>         </div>         <div style = "float:left; width:48%; padding-left:10px;">             <p id="new_block"></p>         </div>     </div>     <script>         function trytest() {             var quote = '"';             var start = "<pre>&lt;div class=" + quote + "newest" + quote + "&gt;</pre>";             var title = "title=" + quote + document.getelementbyid("title").value + quote;             var end = "<pre>&lt;/div&gt;</pre>";              var start_1 = "{{widget type=" + quote + "new_version" + quote;             var title_1 = "title=" + quote + document.getelementbyid("title_content").value + quote;             var content_1 = "content=" + quote + document.getelementbyid("more_content").value + quote;             var end_1 = "template=" + quote + "other" + quote + "}}";              var title_2 = "title=" + quote + document.getelementbyid("title_content-2").value + quote;             var content_2 = "content=" + quote + document.getelementbyid("more_content-2").value + quote;              var widget = start_1 + "<br />" + title_1 + "<br />" + content_1 + "<br />" + end_1;               var widget_1 = start_1 + "<br />" + title_1 + "<br />" + content_1 + "<br />" + end_1 + start_1 + "<br />" + title_2 + "<br />" + content_2 + "<br />" + end_1;               if(add.clicked == false) {                 document.getelementbyid("new_block").innerhtml = start + "<br />" + title + "<br />" + end + "<br /><br />" widget + "<br /><br />";             } else {                 document.getelementbyid("new_block").innerhtml = start + "<br />" + title + "<br />" + end + "<br /><br />" widget_1 + "<br /><br />"";             }     </script> 

this code strange mix of jquery , vanilla javascript syntaxes...
work if there no parse error.

those error quite easy find in code editor codepen, way.

  if(add.clicked == false) {     document.getelementbyid("new_block").innerhtml = start + "<br />" + title + "<br />" + end + "<br /><br />" + widget + "<br /><br />";     // added missing + sign --->                --->                --->                --->               here -------^   } else {     document.getelementbyid("new_block").innerhtml = start + "<br />" + title + "<br />" + end + "<br /><br />" + widget_1 + "<br /><br />";     // added missing + sign --->                --->                --->                --->                 here -------^   }  }  // added curly bracket close trytest() function. 

just above code block, condition choose string append new_block.

the if(add.clicked == false) { condition evaluates false, because add not defined. property .clicked of undefined, undefined...
"undefined" == false false... , makes else block execute.

this condition fixed avoid cannot read property 'value' of null error on "code" click if "add" has not been clicked.

there couple ways determine if "add" button has been clicked.

  1. check if element title_content-2 exist
  2. use boolean "flag" turned true on "add" click
  3. adding class "add" button on click

i let think solution prefer , try it.

here code freed of mentionned syntax errors in codepen.





wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

python - Read npy file directly from S3 StreamingBody -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -