Ich habe eine Frage zum Aufrufen einer Ansichtsfunktion über eine HTML-Vorlagenschaltfläche. Wie eine Onclick-Funktion? Hier ist die Vorlage:
<input id="submit" type="button" onclick="xxx" method="post" value="Click" />
Und die views.py ist:
def request_page(request):
...do something...
return render_to_response("/directory.html", {})
Vielen Dank.
Eine Option ist, dass Sie die Schaltfläche submit
mit einem form
umbrechen können.
Etwas wie das:
<form action="{% url path.to.request_page %}" method="POST">
<input id="submit" type="button" value="Click" />
</form>
(Entfernen Sie die onclick
und method
)
Wenn Sie einen bestimmten Teil der Seite laden möchten, ohne die Seite neu zu laden, können Sie dies tun
<input id="submit" type="button" value="Click" data_url/>
und auf einem submit
Listener
$(function(){
$('form').on('submit', function(e){
e.preventDefault();
$.ajax({
url: $(this).attr('action'),
method: $(this).attr('method'),
success: function(data){ $('#target').html(data) }
});
});
});
Angenommen, Sie möchten einen Wert aus der Benutzereingabe im HTML-Textfeld abrufen, wenn der Benutzer auf die Schaltfläche "Klicken" klickt, und rufen dann eine python function (mypythonfunction) auf, die Sie in mypythoncode.py geschrieben haben. Beachten Sie, dass die Klasse "btn" in einer CSS-Datei definiert ist.
in templateHTML.html:
<form action="#" method="get">
<input type="text" value="8" name="mytextbox" size="1"/>
<input type="submit" class="btn" value="Click" name="mybtn">
</form>
inside view.py:
import mypythoncode
def request_page(request):
if(request.GET.get('mybtn')):
mypythoncode.mypythonfunction( int(request.GET.get('mytextbox')) )
return render(request,'myApp/templateHTML.html')
Wie wäre es damit:
<a class="btn btn-primary" href="{% url 'url-name'%}">Button-Text</a>
Die Klasse enthält bootstrap Stile für Primärknopf.
sie können die Eingabe in ein Formular wie folgt einfügen:
<script>
$(document).ready(function(){
$(document).on('click','#send', function(){
$('#hid').val(data)
document.forms["myForm"].submit();
})
})
</script>
<form id="myForm" action="/request_page url/" method="post">
<input type="hidden" id="hid" name="hid"/>
</form>
<div id="send">Send Data</div>
Zum Beispiel kann ein Logout Button so geschrieben werden:
<button class="btn btn-primary" onclick="location.href={% url 'logout'%}">Logout</button>
Wo Abmelden Endpunkt:
#urls.py:
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),