Sto utilizzando KnockoutJS con SammyJS per un'applicazione di una pagina.Come impedire il modulo di invio
Nel html ho forma tag come segue
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
e nel mio ViewModel, dichiarato due funzioni e Sammy percorso url
function ViewModel() {
var self = this;
self.name = ko.observable("");
self.search = function() {
alert(self.name);
};
Sammy(function() {
this.get('#:id', function() {
//do something....
});
}).run();
}
ko.applyBindings(new ViewModel());
Tutto il codice funziona bene, fino a quando si digita qualcosa nel campo testo quindi inviare il modulo. Mi aspettavo che l'URL non scorresse dopo la finestra di avviso, ma l'url è cambiato in qualcosa del tipo "http: // localhost: 8258/undefined?" il mio URL originale è "http: // localhost: 8258"
Ho dubitato del routing di URL sammy, quindi ho rimosso il codice sammy dal codice javascript, quindi l'URL non cambia dopo la finestra di avviso. Forse non capisco come funziona sammy.
Come evitare che l'URL lo cambi in questo caso?
hai provato tornando 'false' dal' funzione self.search'? –
grazie Gene, ho notato che non ho impostato il percorso postale in Sammy. – Ray
Punto minore ... poiché 'self.name' è una funzione, dovresti chiamare' alert (self.name()) '. –