2017-09-07 5 views
0

Ich erstelle ein Kundenformular für ein Projekt, und während ich sie anzeigen, möchte ich den Benutzer in der Lage sein, auf eine Schaltfläche klicken, um die Kundendaten zu bearbeiten. Hier ist das, was ich brauche:Ändern Sie das HTML-Tag auf Knopfdruck

<span>Customer_name</span> 
<span>Customer_surname</span> 
<span>...</span> 
<button>Click me to turn spans into inputs</button> 

Wenn der Benutzer klicken Sie auf den Button, möchte ich die Spannweiten in Eingaben machen. Jede Hilfe wird geschätzt!

+3

Sie Eingabefeld hilft es haben kann, und sie werden standardmäßig ausgeblendet werden. Wenn der Benutzer auf die Schaltfläche klickt, wird das Eingabefeld angezeigt und der Bereich ausgeblendet. – Lalit

+0

Ich dachte daran, das zu tun, wird das ein richtiger Weg sein? Ich dachte, vielleicht gibt es eine JavaScript-Funktion, die so etwas macht. Trotzdem danke für die Hilfe. – petrosg

+1

Verwendung kann auch span entfernen und eine neue Eingabe erstellen, um es zu ersetzen – NewBieBR

Antwort

1

Wenn Sie es in nativer JavaScript tun wollen ..

Hope it

var elems = document.querySelectorAll("#span-container > div"); 
 

 
document.getElementById("toggle-btn").addEventListener('click', function(){ 
 
    for(var i=0; i< elems.length; i++) { 
 

 
     if(elems[i].firstElementChild.className.indexOf("see") === -1) { 
 

 
      elems[i].firstElementChild.className = elems[i].lastElementChild.className += "see"; 
 
      elems[i].lastElementChild.value = elems[i].firstElementChild.innerText; 
 

 
     } else { 
 

 
      elems[i].firstElementChild.className = elems[i].lastElementChild.className = ""; 
 
      elems[i].firstElementChild.innerText = elems[i].lastElementChild.value; 
 

 
     } 
 
    } 
 
})
* { 
 
    padding: 0; 
 
    margin: 0 
 
    box-sizing: border-box; 
 
} 
 

 
#span-container > div { 
 
    width: 200px; 
 
    height:30px; 
 
    margin: 5px; 
 
} 
 
#span-container > div span{ 
 
    display: block; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 
#span-container > div input { 
 
    height: 100%; 
 
    width: 100%; 
 
    display: none; 
 
} 
 

 
#span-container > div span.see { 
 
    display: none; 
 
} 
 
#span-container > div input.see { 
 
    display: block; 
 
} 
 

 
button { 
 
    padding: 4px 2px 6px; 
 
    border-radius: 2px; 
 
    background-color: #fff; 
 
    box-shadow: none; 
 
    border: 0; 
 
    cursor: pointer; 
 
    min-width: 75px; 
 
}
<div id="span-container"> 
 
    <div> 
 
     <span>Customer_name</span> 
 
     <input type="text" /> 
 
    </div> 
 
    <div> 
 
     <span>Customer_surname</span> 
 
     <input type="text" /> 
 
    </div> 
 
    <div> 
 
    <span>Customer_surname</span> 
 
    <input type="text" /> 
 
    </div> 
 
</div> 
 
<button id="toggle-btn">Toggle</button>

+0

Danke sehr sehr Kumpel, ich habe das genutzt und perfekt gearbeitet, so wie ich es wollte. Vernachlässige es sehr! :) – petrosg

2

Möchten Sie so?

HTML

<div class="customerdata"> 
    <span>Customer_name</span> 
    <span>Customer_surname</span> 
    <span>...</span> 
    <button class="editbtn">Click me to turn spans into inputs</button> 
</div> 

js

$(document).ready(function(){ 
    $(document).on("click",'.editbtn',function(){ 
     $(this).closest(".customerdata").find('span').attr("contenteditable","true"); 
    }); 

}); 

fiddlelink

+0

Genau das, was ich wollte !! Ich werde es versuchen :) – petrosg

1

prüfen Here

$('button').click(function() 
    { 

    $('span').each(function() 
    { 
    $(this).context.innerHTML=""; 
    $(this).context.innerHTML='<input type= text id = textBox></input>'; 
    }) 

    }); 
Verwandte Themen