2013-07-30 19 views
0

我有一種方法是動態設置爲我的窗體中的不同文本框。但問題是我只想讓方法工作,如果我在我的視圖名爲riskscore.cshtml。有沒有辦法?像一個if(page == riskscore.cshtml){do method}類型的代碼?如果文本框是在特定頁面上的文本框上的調用方法

+1

JavaScript怎麼會/應該知道只存在於服務器上的東西? :) – UweB

+0

我不知道...也許你可以調用元素和se如果元素頁是riskcore或什麼的? –

+0

嗯 - 你說它是動態添加到文本框中的。你爲什麼不把這種方法附加到riskscore.cshtml上的文本框?或者你是否可以不改變服務器/方法附加邏輯? – UweB

回答

2

的JavaScript通常無法知道是否或何時使用服務器端的特定視圖文件的方式。它只知道視圖呈現的結果。

你可以用視圖的內容,比方說一個<div class="riskscore">,然後內那些選擇文本框:

$('.riskscore :text')... 

您還評論其他元素不會沒有這種觀點存在提及。您可以使用它們作爲您的條件,檢查它們是否存在:

if ($('.other-elements').length) { 
    // do method 
} 

根據需要替換'.other-elements'

+0

這是一個很好的和簡單的解決方案!:)謝謝! –

2

您可以在JavaScript測試網址:

if(/\/riskscore\.chtml$/.test(window.location.pathname)) { 
    // You're on riskscore.chtml... Do something 
} 
+0

他使用MVC,這意味着瀏覽器中的URL可以(並且是默認的)完全不同於服務器上的文件名。 – UweB

+0

我不明白它的工作。我的網頁位於views/home/riskscore中。我改變了riskcore來查看/ home/riskscore.cshtml,但它並沒有工作:( –

+0

沒關係;只是使用'window.location.href'或'window.location'的其他屬性進行比較。例如,你可以比較'/ \/riskscore(\/| $)/。test(window.location.href)'。 –

1

可以使用window.location來獲得當前位置。或者您可以使用location.pathname當前路徑。

link here

我認爲這將有助於

+0

window.location.pathname會給我一個「/」作爲回答?我在這裏做錯了什麼? –

+0

@DanielGustafsson檢查location.pathname –

+0

@DanielGustafsson如果你在主頁,那麼它將返回/ –

相關問題