Am avut de lucru de cod care ar putea reseta forma mea când m-am faceți clic pe un buton de resetare. Cu toate acestea, după codul meu este obtinerea mai mult, mi-am dat seama că nu't mai funcționează.
<div id="labels">
<table class="config">
<thead>
<tr>
<th colspan="4"; style= "padding-bottom: 20px; color:#6666FF; text-align:left; font-size: 1.5em">Control Buttons Configuration</th>
</tr>
<tr>
<th>Index</th>
<th>Switch</th>
<th>Response Number</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<form id="configform" name= "input" action="#" method="get">
<tr><td style="text-align: center">1</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" value="" id="number_one"></td>
<td><input style="background: white; color: black;" type="text" id="label_one"></td>
</tr>
<tr>
<td style="text-align: center">2</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id = "number_two" value=""></td>
<td><input style="background: white; color: black;" type="text" id = "label_two"></td>
</tr>
<tr>
<td style="text-align: center">3</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_three" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td style="text-align: center">4</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_four" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" id="configsubmit" value="Submit"></td>
</tr>
<tr>
<td><input type="reset" id="configreset" value="Reset"></td>
</tr>
</form>
</tbody>
</table>
</div>
Și-mi jQuery:
$('#configreset').click(function(){
$('#configform')[0].reset();
});
Există unele sursa pe care o am ar trebui să includă în codurile mele pentru ca `.reset () metoda lui de a lucra? Anterior am folosit:
<script src="static/jquery.min.js">
</script>
<script src="static/jquery.mobile-1.2.0.min.js">
</script>
și `.reset () metoda a fost de lucru.
În prezent, am'm, folosind
<script src="static/jquery-1.9.1.min.js"></script>
<script src="static/jquery-migrate-1.1.1.min.js"></script>
<script src="static/jquery.mobile-1.3.1.min.js"></script>
Ar putea fi unul din motivele?
$('#configreset').click(function(){
$('#configform')[0].reset();
});
Pune-l în JS vioara. A lucrat ca destinate.
Deci, nici una dintre problemele menționate mai sus sunt de vina aici. Poate te're având un conflict de IDENTITATE problema? Este un click de executare de fapt?
Edit: (pentru că'm un sac trist fără corectă comentând cu capacitatea de) L'nu e o problemă direct cu codul. Acesta funcționează bine atunci când îl scoate din contextul pagină pe care o're folosind în prezent, astfel încât, în loc de a fi ceva special cu jQuery/javascript & atribuită formă de date, trebuie să fie altceva. Am'd începe intersecta codul în jurul valorii de ea și încercați să găsiți în cazul în care o's întâmplă. Adică, doar pentru a - 'asigur', presupun că ai putea...
console.log($('#configform')[0]);
în funcție faceți clic pe și asigurați-vă că-l's, vizând forma...
și dacă este, trebuie să fie ceva care's care nu sunt enumerate aici.
edit partea 2: Un singur lucru ai putea incerca (daca's nu vizează în mod corect) este utilizat "de intrare:resetați" în loc de ceea ce sunt, folosind... de asemenea, am'd sugera că l's nu ținta pe care's incorect de lucru pentru a afla ce faceți clic pe se adreseaza. Doar deschide firebug/instrumente de dezvoltare, ce-ai, arunca în
console.log($('#configreset'))
si vezi ce apare. și apoi putem pleca de acolo.
În conformitate cu acest post aici, jQuery are nici un reset()
metoda; dar nativ JavaScript nu. Deci, pentru a converti jQuery elementul de la un obiect JavaScript fie prin utilizarea :
$("#formId")[0].reset()
// or
$("#formId").get(0).reset()
Acesta este unul din acele lucruri care's de fapt mai ușor de făcut în vanilie Javascript decât jQuery. jQuery nu't au o "resetare" metoda, dar Formular HTML Element face, astfel încât să puteți reseta toate câmpurile din formularul asta:
document.getElementById('configform').reset();
Dacă veți face acest lucru prin jQuery (așa cum se vede în alte raspunsuri aici: $('#configform')[0].reset()
), care [0]
este preluarea de aceeași formă DOM element care le-ar obține direct prin document.getElementById`. A doua abordare este mai eficientă și mai simplă, deși (începând cu jQuery abordare veți obține mai întâi o colecție și apoi trebuie să aducă un element de la ea, întrucât cu vanilie Javascript veți obține doar elementul direct).
Un buton de resetare nu't nevoie de nici un script la toate (sau numele sau id-ul):
<input type="reset">
și tu're făcut. Dar dacă într-adevăr trebuie utilizați script-ul, rețineți că orice formă de control are un forma de proprietate care face referire la forma de l's, deci ai putea face:
<input type="button" onclick="this.form.reset();">
Dar un buton de resetare este o alegere mult mai bună.
Am'am în cele din urmă a rezolva problema!!
@RobG avut dreptate cu privire la "forma" tag-ul și de masă
tag. cel de "formă" tag-ul ar trebui să fie plasat în afara tabelului. cu asta,
<td><input type="reset" id="configreset" value="Reset"></td>
funcționează fără a fi nevoie de jquery sau orice altceva. simplu faceți clic pe butonul și tadaa~ întreaga formă este resetat ;) genial!
Folosind funcția jquery .cel mai apropiat(element) și .găsi(...).
Obtinerea de părinte element și căutați pentru copii.
În cele din urmă, nu în funcție de necesități.
$("#form").closest('form').find("input[type=text], textarea").val("");
Eu folosesc acest cod simplu:
//reset form
$("#mybutton").click(function(){
$("#myform").find('input:text, input:password, input:file, select, textarea').val('');
$("#myform").find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected');
});
Prima linie va reseta formă de intrări
$('form#myform').trigger("reset"); //Line1
$('form#myform select').trigger("change"); //Line2
Al doilea va reseta select2
Optional: puteți utilizator acest lucru, dacă aveți diferite tipuri înregistrate cu diferite evenimente
$('form#myform select, form input[type=checkbox]').trigger("change"); //Line2
Puteți adăuga doar un input type = reset cu un id = resetform astfel de prognoze
<html>
<form>
<input type = 'reset' id = 'resetform' value = 'reset'/>
<!--Other items in the form can be placed here-->
</form>
</html>
apoi cu jquery puteți utiliza pur și simplu .faceți clic pe (funcția) pe elementul cu id = resetform după cum urmează
<script>
$('#resetform').click();
</script>
și forma resetează Notă: puteți ascunde, de asemenea, butonul de resetare cu id = resetform folosind css
<style>
#resetform
{
display:none;
}
</style>
Aici este o soluție simplă cu Jquery. Acesta funcționează la nivel global. Avea o privire de pe cod.
$('document').on("click", ".clear", function(){
$(this).closest('form').trigger("reset");
})
Adăugați o clasă clar la un buton în orice formă trebuie să-l resetați. De exemplu:
<button class="button clear" type="reset">Clear</button>
Puteți utiliza următoarele.
@using (Html.BeginForm("MyAction", "MyController", new { area = "MyArea" }, FormMethod.Post, new { @class = "" }))
{
<div class="col-md-6">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">
@Html.LabelFor(m => m.MyData, new { @class = "col-form-label" })
</div>
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-12">
@Html.TextBoxFor(m => m.MyData, new { @class = "form-control" })
</div>
</div>
<div class="col-md-6">
<div class="">
<button class="btn btn-primary" type="submit">Send</button>
<button class="btn btn-danger" type="reset"> Clear</button>
</div>
</div>
}
Atunci clar forma:
$('.btn:reset').click(function (ev) {
ev.preventDefault();
$(this).closest('form').find("input").each(function(i, v) {
$(this).val("");
});
});