我尝试进行一些表单验证,但是不想按类名选择表单输入。有没有办法可以根据输入属性类型循环验证。我玩过代码,但收效甚微。可能会在这些方面思考一些事情:
编辑:我不想使用插件function validator (myForm) {
// If type equals Email
if($(myForm + " input").attr("type") == "email") {
// Validate Email Here
}
// If type equal text
if($(myForm + " input").attr("type") == "text") {
// Validate Text Here
}
}
答案 0 :(得分:4)
是的,你可以这样做。
首先,如果myForm
是一个DOM元素,那么您需要$(myForm).find(...)
而不是$(myForm + " ...")
,因为后者会导致选择器无效。如果myForm
是包含有效选择器的字符串,那就没关系。
您的if($(myForm + " input").attr("type") == "email") {
无法正常运行,因为它会在您的表单中获取第一个 type
的{{1}}并将其与字符串进行比较input
。它不会在您的表单中找到所有电子邮件输入。
您可以使用属性选择器选择特定类型的输入,例如:
"email"
和
$(myForm).find("input[type=email]").each(function() {
// Validate email inputs; each input is available as `this`,
// which is a DOM element
});
(在这种情况下,我们不需要围绕属性值引用,因为它们是单个单词。)
您也可以查看HTML5 form validation stuff。
当然,您可能知道这一点,但您使用客户端JavaScript(或其他浏览器功能)进行的任何验证纯粹是出于UI / UX目的。您仍然需要验证服务器上的内容,因为可以完全绕过客户端验证...
答案 1 :(得分:-1)
你可以按下面的属性找到输入元素。
//If type equals Email
$('input [type = email]')
// If type equals Email
$('input [type = text]')
如上所述,您可以访问。