jquery not updating handlebars partial view correctly when submitting a form (express, node.js) -
i'm using node.js express , handlebars. having trouble updating particular div sending data.
i'll ask question 10' level first because maybe details unnecessary answer. when use href='blah' , set jquery function express right thing , updates div without updating whole page.
when use same code on <form method="post" .... however, instead drops layout, doesn't go jquery call, render entire handlebars page routed via express.
why these different , should doing instead?
if wasn't clear, here code:
inside view directory have: index.handlebars, view1.handlebars, temp.handlebars.
inside view1.handlebars, have form:
<form method="post" action="/update_this" enctype="multipart/form-data" data-id="{{data.uniqueid}}"> and div:
<div id="sectional"> {{> partial}} </div> and when clicks button, want update sectional div. use jquery so:
$('#btn-here').on('click', function(event) { event.preventdefault(); var id_num = $(this).data('id'); //id_num correct $.get("/temp/" + id_num, function(res) { var updated_html = res; $('#sectional').html(updated_html); }); }); i allow jquery find temp.handlebars file via:
router.get('/temp/:id', view1.showstuff); and inside view1.showstuff function:
showstuff: function(req, res) { res.locals.model = model; res.render('temp/' + id, {layout: false}); }; this renders whole page , loses layout.handlebars file.
as stated, if instead have button href=... layout stays , renders perfectly. fact doing post request instead of get causes issue.
well jquery can load html directly element using $(<someelement>).load. here's docs: http://api.jquery.com/load/ basically, pointing route coming node server sends html, .load replace current html response.
Comments
Post a Comment