2010-05-17 21 views
6

Kullanıcı bir formda geçersiz bir şey girdiğinde, ancak her şey yolundaysa başka bir işlem gerçekleştirdiğinde, bir hata mesajıyla birlikte kalıcı bir pencere görüntülemek istiyorum. BenRails denetleyicisinden JavaScript oluşturulamıyor

render :js => "jQuery.facebox(#{...})" 

ile kalıcı bir pencere görüntülemek çalıştığınızda Ancak, denilen sadece gerçek JavaScript görüntülenir:

try { 
    jQuery.facebox(...) 
} catch (e) { alert('RJS error:\n\n' + e.toString()); 
    alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")'); 
    throw e; 
} 
+0

Eh, soru nedir? –

+0

Soru şu: Ne yapıyorum yanlış? –

+0

Kullanıcının javascript içermemesi durumunda bir arıza güvenli olduğundan emin olun. Aksi halde hata aldıklarını bilmiyorlardı. Kişisel bir kural olarak, modal pencerelerin kaldırılmasının kullanılabilirliği artırdığını buluyorum ... bu soruya gerçekten yardım etmemekle birlikte, bazı bilgelik sözlerini paylaşacağımı düşündüm. – Schneems

cevap

1

Belki jQuery çağrısında belirtmelidir bu

render :update do|page| 
    page << "jQuery.facebox(#{...})" 
end 
+0

Aynı şey olur. –

1

deneyin Beklediğiniz yanıtın dataType.

Örn .:

$.ajax({ 
    url: "/controller/action/id", 
    success: function(){ 
    $(this).addClass("done"); 
    }, 
    dataType: 'script' 
}); 
7

Kısmi kod koyarak denediniz mi? Bunun yerine

render :js => "jQuery.facebox(#{...})" 

sizin _my_facebox_popup.html.erb iç Sonra

render :partial => "my_facebox_popup" 

deneyin kısmi kodunuzu koyun:

<script type = "text/javascript"> 
... 
</script> 

hata ayıklama sen firebug ile olsun herhangi bir hata.

İlgili konular