OK so I just started using sammy.js , I don’t it very well but I was able to get the basics working pretty quickly.
HTML form I’m using
<form id="contact_form" action="#/form" method="post">
<label for="name">Name:</label><input class="textbox" type="text" name="name" id="name" />
<label for="email">E-mail:</label><input class="textbox" type="text" name="email" id="email" />
<label for="message">Message:</label><textarea class="textbox" name="message" id="message"></textarea>
<button type="submit" name="submit" value="Submit" id="submit" />
<p id="message_outcome"></p>
js I’m Using to route my urls
var app = $.sammy(function(){
this.element_selector = '#page1';
this.get('#/about',function(context){
$("ul#nav li").removeClass("active"); //removes "active" class
$('#nav_1').addClass("active"); //adds "active" class to the tab that is selected
$.post('home/about','', function(resp){
$('#page1').html(resp);
$('#page_container').cycle(0); //the number of the div that will be shown on click
});
});
this.post('#/form', function(context){
this.log('Form Submission');
});
});
$(function(){
app.run('#/about');
});
When the url has #/form in it, I get a console log that says its running route get(‘#/form’) .. any ideas?
Here is some more information that may help
Jquery Plugin I’m using aside from sammy
http://jquery.malsup.com/cycle/
This is what my chrome console says when I click submit on my form.
[Sun Oct 10 2010 05:29:27 GMT-0400 (Eastern Daylight Time)] runRoute get #/form /public/js/lib/sammy.js:96
[Sun Oct 10 2010 05:29:27 GMT-0400 (Eastern Daylight Time)] 404 Not Found get #/form Error: 404 Not Found get #/form
Another thing to keep in mind for post routes is to understand how sammy works. When Sammy is initialized it gets bounded to a jQuery selector.
For post routes, Sammy binds to all the forms inside the selector used for initializing (#content in our example) the application and listens for the click events generated by form submit as these gets bubbled up to the parent. Now, when it sees the submit event for form it will execute the corresponding route if the form points to a route.
On thing to keep in mind is that if your form is outside the main selector (e.g. in header which is outside #content) then sammy will never receive the submit event and post route will never execute.