Ik probeer hier data uit een form via ajax door te sturen naar een andere pagina. Alleen wil dit niet lukken.

Ik krijg de value van de input firstname niet door in mijn ajax. Dit is maar een voorbeeld. Later wil ik dit uitbreiden. De bedoeling is om zo een validatie te kunnen doen van bepaalde inputs of die wel of niet ingevuld zijn.

Of ik nu iets invul in de firstname input of niet, ik krijg altijd dezelfde alert te zien, nl: 'Please fill in ...' wat dus volledig fout is.

Hieronder mijn javascript file:


<script type="text/javascript">
$(document).ready(function(){
$("#submit1234").click(function(){


var firstname = $('input[name="template-contactform-firstname"]').val()


// Returns successful data submission message when the entered information is stored in database.
var dataString = 'firstname1='+ firstname;
if(firstname=='')
{
alert("Please Fill All Fields "+firstname);
}
else
{
// AJAX Code To Submit Form.
alert("Ok "+firstname);
$.ajax({
type: "POST",
url: "cta-aut.php",
data: dataString,
cache: false,
success: function(result){
alert(result);
}
});
}
return false;
});
});						
</script>	


En als laatste mijn html form (deze zit in een bootstrap modal, maar maakt volgens mij geen verschil):


                        <div class="modal fade" id="cta-aut-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                            <div class="modal-dialog">
                                <div class="modal-body">
                                    <div class="modal-content">
                                        <div class="modal-header">
                                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                                            <h4 class="modal-title" id="myModalLabel">Vraag uw demo aan</h4>
                                        </div>
                                        <div class="modal-body">
                                        
                        
                        <div class="style-msg successmsg" id="contact-form-result2"></div>
                        <div class="style-msg errormsg" id="contact-form-result3"></div>

                        <form class="nobottommargin" id="template-contactform" name="template-contactform">

                            <div class="form-process"></div>

                            <div class="col_one_third">
                                <label for="template-contactform-firstname">Voornaam <small>*</small></label>
                                <input type="text" id="template-contactform-firstname" name="template-contactform-firstname" value="" class="sm-form-control " />
                            </div>

                            <div class="col_one_third">
                                <label for="template-contactform-lastname">Achternaam <small>*</small></label>
                                <input type="text" id="template-contactform-lastname" name="template-contactform-lastname" value="" class=" sm-form-control " />
                            </div>
                            
                            <div class="col_one_third col_last">
                                <label for="template-contactform-email">Email <small>*</small></label>
                                <input type="text" id="template-contactform-email" name="template-contactform-email" value="" class=" sm-form-control" />
                            </div>

                            <div class="clear"></div>

                            <div class="col_one_third">
                                <label for="template-contactform-website">Website URL <small>*</small></label>
                                <input type="text" id="template-contactform-website" name="template-contactform-website" value="" class="sm-form-control " />
                            </div>
                            
                            <div class="col_one_third">
                                <label for="template-contactform-phone">Telefoon <small>*</small></label>
                                <input type="text" id="template-contactform-phone" name="template-contactform-phone" value="" class="sm-form-control " />
                            </div>

                            <div class="col_one_third col_last">
                                <label for="template-contactform-role">Uw functie <small>*</small></label>
                                <input type="text" id="template-contactform-role" name="template-contactform-role" value="" class=" sm-form-control" />
                            </div>

                            <div class="clear"></div>

                            <div class="col_full">
                                <label for="template-contactform-message">Wat is uw belangrijkste uitdaging op het vlak van marketing en verkoop?</label>
                                <textarea class="sm-form-control" id="template-contactform-message" name="template-contactform-message" rows="6" cols="30"></textarea>
                            </div>

                            <div class="col_full hidden">
                                <input type="text" id="template-contactform-botcheck" name="template-contactform-botcheck" value="" class="sm-form-control" />
                            </div>

                        </form>
                        
                        

                        
                                        </div>
                                        <div class="modal-footer">
                                            <button type="button" class="btn btn-default" data-dismiss="modal">Sluiten</button>
                                            <button class="btn btn-success" id="submit1234">Verzenden</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>

Op lijn 6 mist een punt-komma overigens, en je AJAXcode is commented, en zal dus niet worden uitgevoerd.
Momenteel gaat het mij hier om de alerts. Maar heb de ajax code aangepast.

Ik krijg de value van de input firstname niet door in mijn ajax. Dit is maar een voorbeeld. Later wil ik dit uitbreiden. De bedoeling is om zo een validatie te kunnen doen van bepaalde inputs of die wel of niet ingevuld zijn.

Of ik nu iets invul in de firstname input of niet, ik krijg altijd dezelfde alert te zien, nl: 'Please fill in ...' wat dus volledig fout is.
Wat is de waarde van fistname, als je deze in een alert of console.log(); plaatst?
Firstname is gewoon de voornaam van iemand die het form invult. Gewoon tekst.
Ik plaats die in de alert maar krijg niks te zien. Ik vermoed dat het daardoor is dat ik telkens de foutmelding krijg in de alert (Please fill...) ipv de ok-alert. Dus ik denk dat die waarde die je daar invult niet meegestuurd is. Of je dat veld nu invult of niet krijg ik toch telkens dezelfde alert te zien wat ook al niet juist is => bevestiging van mijn vermoeden dat de waarde van firstname niet meegestuurd is.
Klein voorzetje: http://codepen.io/anon/pen/RNwJGr?editors=101


function sendFormByAjax()
{
  alert('sendFormByAjax');
}

function validateContactform()
{
  var valid = true;
  var firstname = $('input[name="template-contactform-firstname"]').val();
  
  if(firstname.length < 2) {
    alert('Vul aub uw voornaam in.');
    valid = false;
  }
  
  return valid;
}

$(document).ready(function(){
  $("#submit1234").click(function(){
    if(validateContactform()) {
      sendFormByAjax();
    }
    return false;
  });
});
@Frank: Ik heb hier hetzelfde probleem. Ik krijg iedere keer de alert 'Vul aub uw voornaam in' te zien of ik nu iets invul of niet in de input firstname...
Wat er wel raar is is dat jouw voorbeeld op codepen wel werkt. Waaraan kan het dan nog liggen?
In die codesnippet op Codepen.io? Wat vul je dan in?
Ik vul op codepen de waarde 'test' in in voornaam en daar werkt het wel. Bij mijn code werkt het dus niet. Nogthans dezelfde code??? Zou het anders moeten werken omdat ik de form in een bootstrap modal heb gestoken?
Je hebt wel de jQuery-library file geladen?
Ik heb de codepen even aangepast met de modal er in: http://codepen.io/anon/pen/emYKgP
Hier werkt het dus ook. Ik heb nogthans net hetzelfde gedaan op mijn website.

Reageren