【发布时间】:2014-04-05 05:24:39
【问题描述】:
我制作了一个 jQuery 验证脚本来验证我的 html 中的两个 input 元素。
$(function() {
function requiredValidation(txt) {
txt = $(txt);
var errorblock = '<span class="error-message">Please enter a valid input</span>';
var isValid = true;
if (jQuery.trim(txt.val()) == '' || jQuery.trim(txt.val()) == txt[0].defaultValue || jQuery.trim(txt.val()) == txt.attr('title')) {
isValid = false;
txt.addClass("error");
txt.parent().append(errorblock);
txt.val(txt.attr('title'));
} else {
txt.removeClass("error");
txt.parent().remove(errorblock);
}
return isValid;
}
$(".newBtn").click(function (e) {
e.preventDefault();
if (!requiredValidation(".rqvalidate")) {
$(".rqvalidate").focus();
return;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input type="text" value="aks" class="rqvalidate"/></p> <p>
<input type="text" value="aks@asd.com" class="emailfield rqvalidate"/></p>
<input type="submit" name="Button1" value="Gem ændringer" class="newBtn"/>
此脚本适用于单个元素,但如果有两个 input 元素,验证脚本会清除两个 input 的值。
这个问题的正确解决方案是什么?
注意:我只能按类验证这些元素。使用元素的 id 是我的问题,因为这些 HTML 是动态生成的
【问题讨论】:
-
您的问题不清楚。预期的行为是什么?如果有 5 个输入具有相同的类,同时根据您决定要验证哪些输入来单击按钮?
-
@TilwinJoy 我不想验证所有获得类“rqvalidate”的输入
-
据我所知,这正是您分享的小提琴中正在发生的事情.. 两个输入都有
rqvalidate类,因此它们都得到了验证。我错过了什么吗? -
@TilwinJoy 是的。我希望该脚本分别验证每个输入。如果第一个输入的验证失败,我只想将我的规则应用于那个,而不是第二个元素。
标签: javascript jquery html validation