2015-11-20 39 views
2

我在多語言編程的愛好者,但我有一個MVC模式上來,這是我的問題:將價值分配到一個文本框,依賴於另外一個文本框,使用條件語句

下面的代碼工作100%。如果第一個文本框的值發生更改,則第二個文本框將獲取用戶名作爲值。

$("#solDate").change(function() { 
      $("#solvedBy").val('@uName'); 
     }); 

My textboxes: 

@Html.TextBoxFor(model => model.Solution_Date, new { @id = "solDate", @class = "one", @type = "datetime"}) 
@Html.TextBoxFor(model => model.Solved_by, new { @id = "solvedBy", @readonly = "true", htmlAttributes = new {@class = "form-control" } }) 

..和我的C#可變信息(uname):

@{ 
    var uName = User.Identity.Name.ToString().Substring(3); 
} 

正如我所說的,這完美的作品。問題是,如果刪除第一個文本框的值,我想刪除用戶名。我想出了以下解決方案,這是行不通的:

$("#solDate").change(function() { 
      if (("#solDate").length < 1) { 
       $("#solvedBy").val(''); 
      } 
      else { 
       $("#solvedBy").val('@uName'); 
      } 
     }); 

我該如何解決這個問題?

回答

4

我認爲這樣做會訣竅,獲得價值並修剪它以移除空白空間。然後檢查它是否爲''

$("#solDate").change(function() { 
    if ($(this).val().trim() == '') { 
     $("#solvedBy").val(''); 
    } else { 
     $("#solvedBy").val('@uName'); 
    } 
}); 

祝你好運玩得開心!

+1

由於.trim在所有平臺上都不存在,因此這樣更安全: 'var val = $ .trim(this.value)===「」?「」:「@ uName」; $(「#resolvedBy」)。val(val);' – mplungjan

+0

謝謝,它現在有效。 – GeorgiG

3

您在這裏缺少一個$字符:

if ($("#solDate").length < 1) { 

或者,你可以使用$(this)代替$("#solDate")了。

+0

謝謝,這是真正的問題。這樣的傻事! – GeorgiG

相關問題