2013-08-18 7 views
13

काम नहीं कर रहा है मेरी वेबसाइट http://www.collegeanswerz.com/ है। मैं रेल का उपयोग कर रहा हूँ। कोड कॉलेजों की खोज के लिए है। मैं चाहता हूं कि उपयोगकर्ता खोज परिणामों को देखने के बजाय कॉलेज नामों में टाइप करने, एंटर पर क्लिक करें, और यूआरएल पर ले जाया जा सके (यदि उपयोगकर्ता सही नाम में टाइप करता है। अगर मैं खोज परिणाम दिखाना नहीं चाहता) । मैं प्लेसहोल्डर के रूप में "ए" और "stackoverflow.com" का उपयोग कर रहा हूं, जबकि मैं इसे काम करने की कोशिश करता हूं।window.location.href

मैं इस के आधार पर window.location.href उपयोग कर रहा हूँ: How to redirect to another webpage in JavaScript/jQuery?

जावास्क्रिप्ट

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

लेआउट फ़ाइल

<%= 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 

अलर्ट काम कर रहा है, जो मुझे बताता है कि अगर कथन के अंदर की चीजें निष्पादित की जानी चाहिए। लेकिन यह मुझे stackoverflow.com के बजाय सामान्य खोज परिणामों में ले जा रहा है। ऐसा क्यों है?

+0

मुझे लगता है कि मुझे डाउनवॉट मिल गया है। क्या आप मुझे बता सकते हैं क्यों? मुझे इस विचार के साथ पहले विचार पर कुछ भी गलत नहीं दिख रहा है। –

+2

मैंने प्रश्न को कम नहीं किया है, लेकिन कम से कम, आपको फॉर्म का HTML दिखाना चाहिए। –

+0

निश्चित रूप से, मैं सवाल संपादित कर दूंगा। –

उत्तर

36

ब्राउज़र अभी भी आपके कोड चलाने के बाद फ़ॉर्म सबमिट कर रहा है।

इसे रोकने के लिए हैंडलर को return false; जोड़ें।

+0

धन्यवाद, आप सही हैं, यह काम किया। इसे यहां भी संबोधित किया गया है (http://stackoverflow.com/questions/6094130/window-location-not-working-not-opening-page)। मुझे यह नहीं पता था कि इससे पहले कि मैंने सवाल पूछा। –

+1

आपने अभी अपना जीवन बचाया है। – TheGrimmScientist

+0

लेकिन अगर मैं झूठी वापसी करता हूं, तो सबमिट फ़ंक्शन का कोई उपयोग नहीं होता है। –

2

इस

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

प्रयास करें या आप इस

// 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"; 

की तरह कुछ कर सकते हैं और अपने समारोह कॉल के अंत में एक वापसी झूठी जोड़ने

+0

क्या मुझे पता चल सकता है कि मुझे वोट वोट क्यों मिला? @Adam Zerner –

+2

आपने उन डाउनवॉट्स प्राप्त करने के बाद सही उत्तर (झूठी वापसी) को जोड़ा। – JJJ

+1

@ जुहाना मेरा जवाब संपादित कर रहा था और उस समय में उन वोटों को मिला। लेकिन इससे पहले कि मतदान से पहले टिप्पणी जोड़ने में कोई फर्क नहीं पड़ता क्योंकि इन डाउन वोटिंग से मुझे अब किसी भी प्रश्न का उत्तर देने में मदद मिलेगी –

1

कृपया जांच करें कि // नहीं प्रयोग कर रहे हैं \\ गलती से नीचे,

Wrong:"http:\\stackoverflow.com" 

Right:"http://stackoverflow.com" 
संबंधित मुद्दे