jquery:验证后隐藏错误消息

时间:2017-08-24 18:15:55

标签: jquery

我是jquery的新手。我想在条目不是数字时显示错误消息。当用户删除输入并正确写入数字时,此处出现问题,仍会显示错误消息。 我怎么能解决这个问题?

$("#SpecCode").mousedown( function() {
    specialismCode=$(this).val();
    if (!$.isNumeric(specialismCode) || specialismCode.length !=''){
        $("#SpecCode").parent().after('<span class="validation">Please enter correct input</span>');
        }

        });

1 个答案:

答案 0 :(得分:1)

答案更新

如果您需要显示/隐藏验证消息,可以将其直接添加到html片段并使用.toggle(true/false)

$("#SpecCode").on('input',  function(e) {
    var specialismCode = $(this).val();
    var nextele = $(this).next('span');
    nextele.toggle(!$.isNumeric(specialismCode) || specialismCode.length == 0);
}).trigger('input');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form>
    <label for="SpecCode">Number:
        <input type="text" id="SpecCode"><span class="validation">Please enter correct input</span>
    </label>
</form>

您的代码中存在一些问题。

而不是:

specialismCode.length !=''

你可以使用:

specialismCode.length == 0

您可以使用输入代替 mousedown

最后,错误消息出现在输入字段之后。所以,你可以使用:

$(this).next('span')

以选择错误消息。

摘录:

$("#SpecCode").on('input',  function(e) {
    var specialismCode = $(this).val();
    var nextele = $(this).next('span');
    if (!$.isNumeric(specialismCode) || specialismCode.length == 0) {
        $(this).after(function(idx, txt) {
            return (nextele.length == 0) ? '<span class="validation">Please enter correct input</span>' : '';
        });
    } else {
        nextele.remove();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <label for="SpecCode">Number:
        <input type="text" id="SpecCode">
    </label>
</form>