检查复选框时如何使错误消息消失

时间:2015-09-07 01:00:21

标签: jquery asp.net-mvc asp.net-mvc-4 addmodelerror

编辑:

ModelState.AddModelError((LocationViewModel m) => m.Location, "Location not found");

当用户提交按钮时,我检查该位置是否存在,如果不存在,那么我在ModelState.AddmodelError中添加

Create Location

我的问题是:当用户点击Checkbox时 <span id="CreateNLocation" > @Html.LabelFor(model => model.CreateLocation, "Create Location") @Html.CheckBoxFor(model => model.CreateLocation) </span> 如何让错误消失?

<span id="CreateNLocation" style="">
   <label for="CreateLocation">Create Location</label>
   <input data-val="true" data-val-required="The Create new Location field is required." id="CreateLocation" name="CreateLocation" type="checkbox" value="true">

在运行时呈现:

BuildAction

    

enter image description here

3 个答案:

答案 0 :(得分:2)

根据您对问题的评论

$('#CreateLocation').change(function(){
  if($(this).prop("checked")) {
    $("span[data-valmsg-for='Location']").hide();
  } else {
    $("span[data-valmsg-for='Location']").show();
  }
});

a fiddle

答案 1 :(得分:1)

如果你想根据是否选中了复选框来显示/隐藏它,这是一个JS小提琴示例。

$('#CreateLocation').click(function() {
   var $checkbox = $('#CreateLocation');
   var $errMsg   = $(this).parents('#parent-example')
                        .find('.field-validation-error');
   $checkbox.prop('checked') ? $errMsg.hide() : $errMsg.show();
});

http://jsfiddle.net/ga7kpn3r/1/

答案 2 :(得分:0)

$('#CreateLocation').click(function() {
    $('.field-validation-error).remove();
});

如果我正确理解您的问题,您只是想在选中复选框时让错误消失?如果是这样,这应该适合你。

编辑:误读了这个问题,我需要错误信息的标记(div,span,无论它是什么)。无论元素是什么,用正确的替换.remove()选择器。

$('#CreateLocation').click(function() {
    $(this).parent(wrapper).find('.field-validation-error').remove();
});