在html输入上显示范围验证器错误消息

时间:2014-05-23 13:39:47

标签: javascript jquery

我在html中有一个输入类型=文本,我在js文件中有这个js代码来显示错误消息

 var $form = $("#myid"),
    $errorMsg = $("<span id='myerrormessagespan' class='error' style='color:red;'>*</span>");


var toReturn = 0;
$("input", $form).each(function () {
    if ($(this).val() == "") {
        if (!$(this).data("error")) {
            $(this).data("error", $errorMsg.clone().insertAfter($(this)));
        }
        toReturn = 1;


    }
    else {
        if ($(this).data("error")) {
            $(this).data("error").remove();
            $(this).removeData("error");
        }
    }

});

我正在尝试将此代码转换为在输入类型=文本字段上创建范围验证器。在文本框中仅显示5位数,但我无法实现。有没有简单的方法呢?

由于

1 个答案:

答案 0 :(得分:0)

请考虑使用jQuery validation plugin,尤其是rangelength方法。但是,如果您想在不使用任何库的情况下坚持原始代码,那么我建议您尝试下面的代码,例如:

<强> HTML

<form id="myid" name="myid" method="post" action="/">name :
    <input type="text" name="name" id="name" />age :
    <input type="text" name="age" id="age" />
    <input type="submit" id="submit" name="submit" value="Save" />
</form>

<强>的jQuery

var $form = $("#myid"),
$errorMsg = $("<span id='myerrormessagespan' class='error' style='color:red;'>*</span>");

$("#submit").on("click", function () {
    var toReturn = true;
    $("input", $form).each(function () {
        var value = $(this).val();
        if((!$.trim(this.value).length) || (value.length > 5)) {
                if (!$(this).data("error")) {
                    $(this).data("error", $errorMsg.clone().insertAfter($(this)));
                }
                toReturn = false;
        }
        else {
                if ($(this).data("error")) {
                    $(this).data("error").remove();
                    $(this).removeData("error");
                }
        }
    });
  return toReturn;
});

Working JSFiddle Demo