Преобразовать type="text" в <p/>
Есть код, который динамически добавляет текстовые поля. Нужно, чтобы после ввода данных и проверки валидации, текстовое поле преобразовывалось в <p/> или какой-то другой элемент, который выглядит на странице как label.
Код: <script type="text/javascript"> var idno = 2; function addNewElement() { var mainDiv = document.getElementById('more_element_area'); var innerDiv = document.createElement('div'); innerDiv.setAttribute('id', 'divId' + idno); var generatedContent = '<input type="text" name="new_element' + idno + '" id="new_element' + idno + '"value="This is my text box' + idno + '"/> <a href ="javascript:void(0)" onclick="return removeThisElement(' + idno + ')">Remove This</a>'; innerDiv.innerHTML = generatedContent; mainDiv.appendChild(innerDiv); idno++; } function removeThisElement(idnum) { var mainDiv = document.getElementById('more_element_area'); var innerDiv = document.getElementById('divId' + idnum); mainDiv.removeChild(innerDiv); } </script> <div id="more_element_area"> <div> <input type="text" name="new_element1" value="This is my text box 1" /> </div> </div> <a href="javascript:void(0)" onclick="return addNewElement()">+ Add more text box</a> </div> |
<style> .label{ border: none; } </style> <input type="text" class="label" readonly="" value="Ну чем тебе не 'label'?" /> |
К сожалению этот вариант не работает.
|
Juli174,
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <script> window.ondblclick = function() { // по двойному клику input преобразуется в p var source = document.getElementById("source"); var dest = document.createElement("p"); dest.innerHTML = source.value; document.body.replaceChild(dest, source); } </script> </head> <body> <input type="text" id="source" value="la la la la la"> </body> </html> |
Цитата:
|
Juli174,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> var idno = 2; function addNewElement() { var mainDiv = document.getElementById('more_element_area'); var innerDiv = document.createElement('div'); innerDiv.setAttribute('id', 'divId' + idno); var generatedContent = '<input type="text" name="new_element' + idno + '" id="new_element' + idno + '"value="This is my text box' + idno + '"/> <a href ="javascript:void(0)" onclick="return removeThisElement(' + idno + ')">Remove This<\/a> <a href ="javascript:void(0)" onclick="return validateThisElement(' + idno + ')">Validate This<\/a>'; innerDiv.innerHTML = generatedContent; mainDiv.appendChild(innerDiv); idno++; } function removeThisElement(idnum) { var mainDiv = document.getElementById('more_element_area'); var innerDiv = document.getElementById('divId' + idnum); mainDiv.removeChild(innerDiv); } function validateThisElement(idnum) { //if validate var innerInput = document.getElementById('new_element' + idnum); var mainDiv = document.getElementById('more_element_area'); var innerDiv = document.getElementById('divId' + idnum); var innerP = document.createElement('p'); innerP.id = 'new_element' + idnum; innerP.innerHTML = innerInput.value; mainDiv.replaceChild(innerP, innerDiv); } </script> </head> <body> <div id="more_element_area"> <div> <input type="text" name="new_element1" value="This is my text box 1"> </div> </div><a href="javascript:void(0)" onclick="return addNewElement()">+ Add more text box</a> </body> </html> |
рони, спасибо, супер!))
|
Часовой пояс GMT +3, время: 18:16. |