2014-05-08 23 views
0

這是一個MVC項目,它有幾個文本框和一個複選框。未選中時,所有的文本框都是必需的。選中時,其中一個文本框被禁用且不需要,而其他文本框仍然需要。紅色邊框和必需的錯誤消息不會消失與.rules("remove","required")我添加了一些CSS來更改邊框的顏色,但我無法弄清楚如何擺脫錯誤消息。JQuery驗證刪除必需的標記暫時

模型視圖

[Required(ErrorMessage="Required")] 
public string textBox2{ get; set; } 
[Required(ErrorMessage="Required")] 
public string textBox3{ get; set; } 

簡明剃刀HTML

@Html.CheckBoxFor(model => model.checkBox) 
@Html.TextBoxFor(model => model.textBox1, new { @class = "disabledTrue" }) 
@Html.TextBoxFor(model => model.textBox2) 
@Html.TextBoxFor(model => model.textBox3) 

CSS禁用紅色邊框,顏色變爲淺灰色

.disabledTrue.input-validation-error:disabled { 
    border-color:lightgray; 
} 

JQuery的

$(document).ready(function() { 
    $('#textBox1').rules("add", "required"); 

    $('#checkBox').click(function() { 
     //makes the input unrequired 
     $('#textBox1').rules("remove", "required"); 
    }); 
}); 

回答

0

最後我用這個。很好地工作。當複選框被選中時,不再需要它,並且不再顯示必需的文本。當它被選中時,它是必需的,並顯示所需的文字。

$(document).ready(function() { 
    $('#checkBox').click(function() { 
     if ($('#checkBox').is(":checked")) { 
      //makes the input unrequired 
      $('#textBox1').rules("remove", "required"); 
      //I added .disableRequired to my HTML 
      // I found .field-validation-error with firebug 
      $("span.disableRequired.field-validation-error").css("display", "none"); 
     } 
     else{ 
      //makes the input unrequired 
      $('#textBox1').rules("add", "required"); 
      //I added .disableRequired to my HTML 
      // I found .field-validation-error with firebug 
      $("span.disableRequired.field-validation-error").css("display", "normal"); 
      } 
    }); 
});