在一个文本框中输入值时,所有错误消息都会消失

我有以下表格与jqueryvalidation。

  1. 当我提交表单而不输入任何值时,它会显示错误消息。 但是当我在“Amount”文本框中输入值时,两个错误消息都消失了。

  2. 此外,在此之后,当我清除Amount文本框中的值时,只有“Amount”错误消息才会显示,直到我单击该按钮。

如何解决这个问题?

小提琴

在此处输入图像描述

jQuery代码

$("#formAddPayment").validate({ rules: { "ddlModeOfPayment": { required: true }, "txtAmount": { required: true } }, messages: { "ddlModeOfPayment": { required: "Please select Mode of Payment." }, "txtAmount": { required: "Please enter Amount." } }, showErrors: function (errorMap, errorList) { var errorListResult = $.map(errorList, function(error){ return "
  • " + error.message+ "
  • "; }); $('#errorSummaryList').html(errorListResult.join('')) $('#errorSummaryList').fadeIn('fast'); //Show error adjuscent to control also //this.defaultShowErrors(); }, submitHandler: function (form) { return false; } });

    在一个文本框中输入值时,所有错误消息都会消失

    showErrors的文档 :

    参数包含当前validation的元素 ,在focusoutfocusout上进行validationonblur时可以是单个元素

    如您所见, showErrors选项按设计工作。 新validation完成后,新的消息map不会保留先前的消息。 如果validation了一个字段,则映射仅包含一个字段的消息等。

    只需使用wrappererrorLabelContainer选项,这些选项在一起使用时,旨在自动保留整个表单的待处理消息的更新列表……

     wrapper: "li", // <- the LABEL will be inside of this errorLabelContainer: "#errorSummaryList", // <- your UL element 

    演示: jsfiddle.net/y9o8du3q/