Javascript driven forms in Django -
django uses forms api input validation. form sent template, , rendered html (as_p , friends).
when user ready, post form, data validated, , form re-rendered on template if not valid.
this odd when form not valid because lack of enough caracteres (i.e. min_length) on field or invalid characters: 1 post tell user missing basic.
so, there available way (django or app) of rendering form javascript code "tests"[*] of form' fields on client-side? i.e. have form rendered as_javascript(...) dynamically shows error messages shown form.errors?
this should not work fields because require database hit, should work on simple (and common) fields, namely charfield, textfield, etc.
[*] "tests" because validation has made on server-side.
so want validate in js before submitting. here's 1 way that. instead of putting input of type submit in form should put button of type button:
<form id="my-form" submit="...">   ...           <input type='button' id='submit-button' value="save"> </form>   note unless specify type "button", still try submit.
then in js file write (include jquery in html file):
$('#submit-button').click(function() {   var errors = testerrors(); // function tests errors.   if (errors != "") {     alert(errors);   } else {     $('#my-form').submit();   } }   example testerrors():
function testerrors() {     var country         = $("#id_country").val();     var city            = $("#id_city").val();      var errors = "";     if (country == "") {         errors += "- please select country\n";     }     if (city.length <= 10 ) {         errors += "- city name short\n";     }     return errors; }   so in testerrors define own tests each field. in example there two, country , city. country code tests whether it's blank , city whether it's longer 10 characters. can define further tests of own. please refer jquery documentation on how retrieve values different types of form fields.
Comments
Post a Comment