2015-03-31 69 views
-1

我正在嘗試創建一個將我的兩個文本框(機架和行)合併爲一個的文本框。
這是我的代碼:嘗試連接Html文本框

@Html.TextBoxFor(m => m.Server.Rack, new { @class= "form-control" }) 

@Html.TextBoxFor(m => m.Server.Row, new { @class = "form-control" }) 

我想Server.Rack和Server.Row合併到同一個文本框。這是可能的在我的代碼?

+0

使用JavaScript的'onblur'當鼠標離開窗體控件啓動功能。您可以使用該函數來讀取這兩個輸入並將它們連接成一個新的值以在其他地方顯示。 – Jared 2015-03-31 20:56:00

+0

我不是最有經驗的代碼,你能舉個例子說說你在說什麼嗎?謝謝! – Cassie 2015-03-31 21:11:23

+0

你想在服務器或客戶端上做到這一點嗎? – Yogiraj 2015-03-31 21:30:07

回答

0

您的形式:

<form> 
<input type="text" id="input1" onblur="concat()"/> 
<input type="text" id="input2" onblur="concat()"/> 
</form> 
<p id="concat"></p> 

和JavaScript:

function concat(){ 
    var x = document.getElementById('input1').innerHTML; 
    var y = document.getElementById('input2').innerHTML; 
    document.getElementById('concat').innerHTML = x.concat(y); 
} 

這是什麼會做: 當文本框鬆動的焦點時,JavaScript會讀每一文本框的信息。然後它會將兩個文本框的結果(即使其中一個爲空)打印到<p id="concat"></p>中。

警告:此代碼是快速編寫的,沒有檢查錯誤或任何測試。使用前查看代碼。

附加信息:這是客戶端,而不是服務器端。

0

我認爲最好在ViewModel中連接這兩個屬性,以便它可以在不同的視圖上使用,並且可以輕鬆地進行評估。你應該做的是創建一個ViewModel並添加一個名爲RackRow的新屬性。然後通過連接Rack和Row屬性在控制器上設置此屬性並將其返回給相關的View。

控制器:

public ActionResult Index_Read() 
{    
    var result = repository.Server.Select(m => new 
    Project.WebUI.Models.ServerViewModel 
     { 
      Rack = m.Rack, 
      Row = m.Row, 
      RackRow = m.Rack + " " + m.Row 
     } 
    ); 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 

希望這有助於...