2013-08-18 20 views
13

Web sitem http://www.collegeanswerz.com/'dir. Rayları kullanıyorum. Bu kod kolejleri aramak içindir. Kullanıcının, arama sonuçlarını görmektense, kolej adını yazabilir, girebilir ve URL’ye alınmasını istiyorum (eğer kullanıcı adı doğru yazıyorsa, arama sonuçlarını göstermek istemiyorum). . Çalışmaya çalışırken, yer tutucular olarak "a" ve "stackoverflow.com" kullanıyorum. Bunun temelinde window.location.href kullanıyorumwindow.location.href çalışmıyor

: How to redirect to another webpage in JavaScript/jQuery?

javascript

$("#search_text").submit(function() { 
    if ($("#search_field").val() == "a") 
    { 
     window.location.href = "http://stackoverflow.com"; 
     alert('worked'); 
    } 
}); 

düzen dosyası

<%= form_tag("/search", :method => 'get', :id => 'search_text', :class => 'form_search') do -%> 
    <div id="search"> <%= search_field_tag :search, params[:search], :placeholder => 'enter college', :id => "search_field", :class => 'input-medium search-query' %></div> 
<% end -%> 

static_pages_controller.rb

def search 
    @colleges = College.search(params[:search]) 
end 

Uyarı, if ifadesinin içindeki şeylerin yürütülmesinin gerektiğini gösteren uyarı çalışıyor. Ama beni stackoverflow.com yerine normal arama sonuçlarına götürüyor. Bu neden?

+0

Görüyorum ki düşüş notlarım var. Nedenini bilmeme izin verir misin? İlk düşüncede bu sorunun yanlış bir şey görmüyorum. –

+2

Soruyu reddetmedim, ancak en azından formun HTML'sini göstermelisiniz. –

+0

Elbette, soruyu düzenleyeceğim. –

cevap

36

Tarayıcı kodunuzu çalıştırdıktan sonra formu gönderiyor. Bunu engellemek için işleyiciye numaralı adresi ekleyin.

+0

Teşekkür ederim, haklısın, işe yaradı. Bu da burada ele alınmıştır (http://stackoverflow.com/questions/6094130/window-location-not-working-not-opening-page). Soruyu sormadan önce farketmedim. –

+1

Hayatımı kurtardın. – TheGrimmScientist

+0

Ancak false değerini döndürürsem, gönderme işlevi kullanılamaz. –

2

+0

Bir oy kullanma hakkımın nedenini biliyor olabilir miyim? @Adam Zerner –

+2

Doğru indirimi (false değerini) bu düşüşleri aldıktan sonra uzun bir süre eklediniz. – JJJ

+1

@Juhana Cevabımı düzenledim ve bu sırada o oyları aldım. Ancak oylamadan önce yorum eklemek mantıklı değil mi? Bu oylama şimdi bana şu sorulara cevap vermeyi düşünebilir –

1

Eğer // değil kullandığınız kontrol edin bu

`var url = "http://stackoverflow.com";  
$(location).attr('href',url);` 

deneyin Veya bu

// similar behavior as an HTTP redirect 
window.location.replace("http://stackoverflow.com"); 

// similar behavior as clicking on a link 
window.location.href = "http://stackoverflow.com"; 

gibi bir şey yapabilirsiniz ve işlev çağrısı sonunda yanlış bir dönüş eklemek \\, yandaki gibi,

Wrong:"http:\\stackoverflow.com" 

Right:"http://stackoverflow.com" 
İlgili konular